我有以下代码:
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有深刻理解的人可以向我解释这一点.
谢谢
那是因为它不是对象,它只是一个字符串.
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)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |