我有以下代码:
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 有深入了解的人可以向我解释这一点。
谢谢
最佳答案
那是因为它不是对象,它只是一个字符串。
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);
关于Javascript 字符串赋值给键值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16465844/