我从http调用中收到一个JSON对象,我正在尝试从中提取值.JSON对象包含:
data:{"userid":"007", "role":"spy"}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码将role属性分配给另一个变量,然后进行一些控制台日志检查:
currentUserRole = data.role;
console.log("type of data: "+typeof(data));
console.log("data: "+JSON.stringify(data));
console.log("user role: "+currentUserRole);
Run Code Online (Sandbox Code Playgroud)
原木产生:
type of data: object
data: [{"userid":"007", "role":"spy"}]
user role: undefined
Run Code Online (Sandbox Code Playgroud)
我还尝试了另一种分配方法:
currentUserRole = data['role'];
Run Code Online (Sandbox Code Playgroud)
但是currentUserRole仍未定义.如何将JSON对象的属性设置为变量?
Ada*_*kin 12
根据日志的第二行(调用JSON.stringify()),您data实际上是一个对象数组:
[{"userid":"007", "role":"spy"}]
Run Code Online (Sandbox Code Playgroud)
如果它是您期望的对象,它将如下所示:
{"userid":"007", "role":"spy"}
Run Code Online (Sandbox Code Playgroud)
(差异很微妙,但请注意缺少的方括号)
试试这个:
currentUserRole = data[0].role;
Run Code Online (Sandbox Code Playgroud)
显然,在生产就绪代码中,您可能需要进行一些额外的健全性检查,以确保data实际上是一个包含至少一个元素的数组.
| 归档时间: |
|
| 查看次数: |
10733 次 |
| 最近记录: |