0

我有以下代码:

var inputString ={"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}

var value = inputString ["Key3"];
alert(value);

上面的代码工作正常,注意变量 inputString 被分配在大括号之间的所有内容。我是 js 新手,但我认为这是表示某种对象的约定。这种字符串赋值对我来说看起来很奇怪,但它的工作原理如上所示。

我的问题是当我尝试将变量分配inputString给字符串文字时,如下所示:

var inputString2 ='{"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}'

var value = inputString2 ["Key3"];
alert(value);

上面的代码返回undefined,为什么?

我相信对javascript有深刻理解的人可以向我解释这一点。

谢谢

4

1 回答 1

5

那是因为它不是对象,它只是一个字符串。

var inputString2 ='{"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}'

您需要删除 json 周围的引号。应该是这样的。

 var inputString2 ={"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}

如果你把它作为字符串。使用 JSON.parse

 var convertedJson =  JSON.parse(inputString2);
var value = convertedJson ["Key3"];
alert(value);

请参阅 JSON.parse

于 2013-05-09T15:51:28.700 回答