コントローラー内の型クラスを使用してデータを解析しています。次のようにデータを取得しています。
{
"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;
ユーザーリストを新しい変数に抽出するにはどうすればよいですか?
ベストアンサー1
投稿した 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()
入力を文字列に変換します。JavaScripttoString()
オブジェクトのメソッドはデフォルトで を返すため[object Object]
、観察された動作が発生します。
代わりに次のことを試してください。
var newData = userData.data.userList;