javascript - 语法错误 : Unexpected token o in JSON at position 1

标签 javascript angularjs json

我正在使用 Controller 中的类型类解析一些数据。我得到的数据如下:

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

关于javascript - 语法错误 : Unexpected token o in JSON at position 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38380462/

相关文章:

javascript - 如何从 Angularjs 服务响应中获取数据到 Controller 作用域对象

angularjs - $http.get 和 $templateCache

javascript - 将 HTML 中的文本表单值输入到 Javascript 函数中

javascript - 如何使用条件标签来切换这个样式表?

javascript - Jest mock winston 记录器

javascript - 将类的所有元素的内容放入数组中。为什么我会收到这些错误消息

angularjs - 使用 angularjs 禁用复选框

javascript - 跨域通信?

java - 如何在不创建对象的情况下将java类转换为json格式结构

php - php 和 Javascript/Ajax 共享 JSON 数据