繁体   English   中英

JSON对象返回未定义的值

[英]JSON object returns undefined value

我从http调用中收到一个JSON对象,我正在尝试从中提取值。 JSON对象包含:

data:{"userid":"007", "role":"spy"}

我使用以下代码将role属性分配给另一个变量,然后进行一些控制台日志检查:

    currentUserRole = data.role;    
    console.log("type of data: "+typeof(data));
    console.log("data: "+JSON.stringify(data));
    console.log("user role: "+currentUserRole);

原木产生:

type of data: object
data: [{"userid":"007", "role":"spy"}]
user role: undefined

我还尝试了另一种分配方法:

currentUserRole = data['role'];

但是currentUserRole仍未定义 如何将JSON对象的属性设置为变量?

根据日志的第二行(对JSON.stringify()的调用),您的data实际上是一个对象数组

[{"userid":"007", "role":"spy"}]

如果它是您期望的对象,它将如下所示:

{"userid":"007", "role":"spy"}

(差异很微妙,但请注意缺少的方括号)

尝试这个:

currentUserRole = data[0].role;

显然,在生产就绪代码中,您可能需要进行一些额外的健全性检查,以确保data实际上是一个包含至少一个元素的数组。

这是一个清单。 尝试data[0].role

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM