JSON.parse返回的是[Object Object]而不是值

15

我的API返回JSON值如下:

[{"UserName":"xxx","Rolename":"yyy"}]

我需要将UsernameRoleName的值分别获取出来,我尝试使用JSON.parse但它返回了[Object Object],请帮帮我,谢谢。


1
投票关闭为拼写错误/无法复制/对未来他人无用。解析工作正常;只是当输出第一个元素时,你只是输出对象,而不是它的属性之一。对象上的默认toString输出[object Object](如果它是一个普通对象)。 - T.J. Crowder
1
欢迎来到 Stack Overflow!请参观一下 [导览],四处看看,并阅读 [帮助],特别是 如何提出一个好问题? 请向我们展示产生你所描述输出的代码。 - T.J. Crowder
1
可能是访问/处理(嵌套)对象、数组或JSON的重复问题。 - JJJ
3个回答

21

考虑以下内容:

    var str = '[{"UserName":"xxx","Rolename":"yyy"}]'; // your response in a string
    var parsed = JSON.parse(str); // an *array* that contains the user
    var user = parsed[0];         // a simple user
    console.log(user.UserName);   // you'll get xxx
    console.log(user.Rolename);   // you'll get yyy


4
如果你的数据是字符串,则需要使用JSON.parse()进行解析,否则你不需要解析,可以直接访问它。

// if data is not in string format
const data = [{"UserName":"xxx","Rolename":"yyy"}];

const username = data[0].UserName
const rolename = data[0].Rolename

console.log(username)
console.log(rolename)

// if data is in string format
const strData = JSON.parse('[{"UserName":"xxx","Rolename":"yyy"}]');

const Username = strData[0].UserName
const Rolename = strData[0].Rolename

console.log(Username)
console.log(Rolename)


2
你有一个数组。需要首先获取0th元素。
这将起作用。

let unps =  JSON.parse('[{"UserName":"xxx","Rolename":"yyy"}]')[0]
console.log(unps.UserName, unps.Rolename);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接