javascript说JSON对象属性是未定义的,尽管它不是

ste*_*ess 6 javascript json properties object undefined

我有一个json对象,我打印到屏幕上(使用alert() - 函数):

alert(object);
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

然后我想将id的值打印到屏幕:

    alert(object["id"]); 
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述

如您所见,键"id"的值不是(!!!)undefined.

这到底是怎么回事?!

Yuv*_*man 17

看起来你的json对象实际上不是一个对象,它是一个json字符串.为了将它用作对象,您需要使用反序列化函数JSON.parse(obj).许多框架都有自己的实现,如何反序列化JSON字符串.
当您尝试alert(obj)使用真实对象时,结果将是[object Object]或类似的东西


Mah*_*sem 5

你的 JSON 没有被解析,所以为了让 JavaScript 能够访问它的值,你应该首先像第 1 行一样解析它:

var result = JSON.parse(object);
alert(result.id);
Run Code Online (Sandbox Code Playgroud)

在您的 JSON Objected 已经被解析后,您可以访问它的值,如下所示:

alert(result.id);
Run Code Online (Sandbox Code Playgroud)