SyntaxError: JSON の位置 1 に予期しないトークン o があります [重複] 質問する

SyntaxError: JSON の位置 1 に予期しないトークン o があります [重複] 質問する

コントローラー内の型クラスを使用してデータを解析しています。次のようにデータを取得しています。

{  
   "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;

おすすめ記事