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

Kar*_*hik 0 javascript

我有以下代码:

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

var value = inputString ["Key3"];
alert(value);
Run Code Online (Sandbox Code Playgroud)

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

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

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

var value = inputString2 ["Key3"];
alert(value);
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

PSL*_*PSL 5

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

var inputString2 ='{"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}'
Run Code Online (Sandbox Code Playgroud)

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

 var inputString2 ={"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}
Run Code Online (Sandbox Code Playgroud)

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

 var convertedJson =  JSON.parse(inputString2);
var value = convertedJson ["Key3"];
alert(value);
Run Code Online (Sandbox Code Playgroud)

请参阅JSON.parse