我在控制器中使用类型类解析了一些数据,如下所示:
{ "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()将输入转换为字符串。toString()默认情况下,JavaScript对象的方法返回[object Object],从而导致观察到的行为。
JSON.parse()
toString()
[object Object]
请尝试以下操作:
var newData = userData.data.userList;