javascript - 看似有效的 JSON 上的 JSON.parse 错误

标签 javascript jquery json laravel-5

<分区>

我正在使用 JSON.parse() 来解析从使用 jquery 的 $.get( )json 看似有效,但是,JSON.parse() 在 Safari 和 Chrome 中都返回错误。

Chrome 说:

Uncaught SyntaxError: Unexpected token o

Safari 说:

SyntaxError: JSON Parse error: Unexpected identifier "object"

代码片段如下:

    $.get('/foo/' + product_id, function(data){
        console.log(data);
        var product = JSON.parse(data);
        if (product) {
            // do something
        }
     });

JSON 是:

{  
   "id":"1b7b3eb7-8769-48fe-a421-64c105de3eff",
   "parent":null,
   "org_id":"845d0d53-de68-42c3-9007-c3d0e72c555e",
   "category_id":"e58237f7-e040-4098-8d46-b84f8cdf7d83",
   "purchase_tax":null,
   "sale_tax":null,
   "code":"982",
   "name":"Mr. Destin Hoppe",
   "is_purchased":false,
   "is_sold":false,
   "purchase_price":null,
   "selling_price":null,
   "purchase_includes_tax":false,
   "sale_includes_tax":false,
   "created_at":"2015-09-16 17:39:34",
   "updated_at":"2015-09-16 17:39:34"
}

有趣的是,eval() 工作得很好。

最佳答案

错误是由于 data 是一个对象,而不是 JSON。你不需要解析任何东西;它已经是一个 JavaScript 对象。 jQuery 在其 get 方法中进行解析。要确认这一点,请将此行添加到回调的顶部。

console.log(data["id"]);

作为此错误的另一个示例,由于相同的原因,以下行也会失败。

JSON.parse({});

关于javascript - 看似有效的 JSON 上的 JSON.parse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635585/

相关文章:

java - 错误解析数据 org.json.jsonexception end of input at character 0

javascript - 在 Dexie 数据库模式中指定不同的唯一键?

javascript - 是否存在一种让爬虫忽略部分文档的方法?

java - Fragment 中的 RecyclerView 错误

javascript - 单击特定按钮显示导航

javascript - 通过 "Yair even or"将编号 ID 分配给动态创建的可选网格元素

node.js - JSONAPI实现

javascript - NodeJS Express - 在不使用 html 扩展名的情况下显示 URL

javascript - Highcharts 。动态更改选项

django - jquery ajax/django - 在 Bootstrap 模式中显示表单,并在验证不成功时重新显示