【问题标题】:javascript says JSON object property is undefined although it's notjavascript 说 JSON 对象属性是未定义的,虽然它不是
【发布时间】:2017-11-27 11:54:24
【问题描述】:
我有一个 json 对象,我将它打印到屏幕上(使用 alert() 函数):
alert(object);
结果如下:
那我想把id的值打印到屏幕上:
alert(object["id"]);
结果是这样的:
如您所见,键“id”的值不是(!!!)未定义的。
这到底是怎么回事?!
【问题讨论】:
标签:
javascript
json
object
properties
undefined
【解决方案1】:
看起来你的 json 对象并不是一个真正的对象,它是一个 json 字符串。为了将其用作对象,您需要使用像 JSON.parse(obj) 这样的反序列化函数。许多框架都有自己的反序列化 JSON 字符串的实现。
当您尝试使用真实对象执行 alert(obj) 时,结果将是 [object Object] 或类似的东西
【解决方案2】:
你的 JSON 没有被解析,所以为了让 JavaScript 能够访问它的值,你应该首先解析它,如第 1 行:
var result = JSON.parse(object);
解析 JSON 对象后,您可以访问它的值,如下所示:
alert(result.id);
【解决方案3】:
您需要将其分配给var,然后访问它。
var object = {id: "someId"};
console.log(object);
alert(object["id"]);
【解决方案4】:
在 JavaScript 中,可以使用 .运算符或使用 [] 进行关联数组索引。 IE。 object.property 等价于object["property"]
你可以试试:
var obj = JSON.parse(Object);
alert(obj.id);