JSON对象返回未定义的值

我从http调用接收到JSON对象,并且试图从中提取值。JSON对象包含:

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

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

    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实际上是一个至少包含一个元素的数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章