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

标签 javascript

我有以下代码:

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);

See JSON.parse

关于Javascript 字符串赋值给键值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16465844/

相关文章:

javascript - 如何根据需要调整文本大小?

javascript - 可排序条形图不工作

javascript - 在后端脚本后重定向到一个新的 url

javascript - 如何在AngularJS中检测鼠标事件的目标模型

javascript - 如何从键和值列表创建嵌套对象?

javascript - 带有错误行为的单选按钮的 jQuery 测验

javascript - onClick 优先于 javascript 中的 addEventListener?

javascript - 有没有办法在带有换行符 (\n) 的字符串中搜索子字符串?

javascript - 如何在回调中访问正确的“this”?

javascript - 输入文件类型错误验证无法使用 jquery 工作