我有以下代码:
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有深刻理解的人可以向我解释。
谢谢
答案 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);