我的API
返回用户对象和格式如下=>
{'id': '1', 'username': 'admin', 'image': 'https://user/testing.png', 'phno': '123'}
首先,我执行JSON.stringify,然后检查此行的类型是否为字符串。
所以我使用JSON.parse来获取对象,但是它仍然是字符串并且无法获取,就像user.id
是未定义的。
我怎么能像user.id
,user.username
,...?
console.log(user);
console.log(user.user);
var test = JSON.stringify(user.user);
console.log(typeof(test));
var test1 = JSON.parse(test);
console.log(test1.id);
答案 0 :(得分:2)
我认为问题可能在于您的API返回带有单引号的JSON数据,而JavaScript无法正确解析它。检查您在服务器端使用的JSON序列化程序。它应该类似于:{"id": "1", "username": "admin", "image": "https://user/testing.png", "phno": "123"}
。
答案 1 :(得分:0)
此解决方案适用于您的数据:
var data = '{"id": "1", "username": "admin", "image": "https://user/testing.png", "phno": "123"}';
var user = JSON.parse(data);
console.log(user.id);
答案 2 :(得分:0)
似乎您没有获得确切的用户json。问题可能是后端。
const obj = `{"user":"{\\"id\\": \\"1\\", \\"username\\": \\"admin\\", \\"image\\": \\"https://user/testing.png\\", \\"phno\\": \\"123\\"}"}`
console.log(obj)
// First get value of user.
let user = JSON.parse(obj).user
console.log(typeof user) //string
// parse again, since user is string
user = JSON.parse(user)
console.log(user.username)
console.log(user.id)