Javascript字符串赋值给键值字符串

时间:2013-05-09 15:48:53

标签: javascript

我有以下代码:

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

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

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

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

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

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

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

我确信对javascript有深刻理解的人可以向我解释。

谢谢

1 个答案:

答案 0 :(得分: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);

See JSON.parse