Javascript字符串分配键值字符串

Javascript string assignment to key-value string

本文关键字:字符串 键值 分配 Javascript      更新时间:2023-09-26

我有以下代码:

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

看到JSON.parse