我正在解析一些数据使用类型类在我的控制器。我得到的数据如下:
{
"data":{
"userList":[
{
"id":1,
"name":"soni"
}
]
},
"status":200,
"config":{
"method":"POST",
"transformRequest":[
null
],
"transformResponse":[
null
],
"url":"/home/main/module/userlist",
"headers":{
"rt":"ajax",
"Tenant":"Id:null",
"Access-Handler":"Authorization:null",
"Accept":"application/json, text/plain, */*"
}
},
"statusText":"OK"
}
我试着这样存储数据
var userData = _data;
var newData = JSON.parse(userData).data.userList;
如何提取用户列表到一个新变量?
你发布的JSON看起来很好,但是在你的代码中,它很可能不再是一个JSON字符串,而是一个JavaScript对象。这意味着不需要更多的解析。
你可以自己测试,比如在Chrome的控制台:
new Object().toString()
// "[object Object]"
JSON.parse(new Object())
// Uncaught SyntaxError: Unexpected token o in JSON at position 1
JSON.parse("[object Object]")
// Uncaught SyntaxError: Unexpected token o in JSON at position 1
JSON.parse()将输入转换为字符串。JavaScript对象的toString()方法默认返回[object object],导致所观察到的行为。
试试下面的方法吧:
var newData = userData.data.userList;
你发布的JSON看起来很好,但是在你的代码中,它很可能不再是一个JSON字符串,而是一个JavaScript对象。这意味着不需要更多的解析。
你可以自己测试,比如在Chrome的控制台:
new Object().toString()
// "[object Object]"
JSON.parse(new Object())
// Uncaught SyntaxError: Unexpected token o in JSON at position 1
JSON.parse("[object Object]")
// Uncaught SyntaxError: Unexpected token o in JSON at position 1
JSON.parse()将输入转换为字符串。JavaScript对象的toString()方法默认返回[object object],导致所观察到的行为。
试试下面的方法吧:
var newData = userData.data.userList;