jsonlint中的有效JSON,但JSON.parse()不起作用

时间:2018-02-13 19:02:51

标签: javascript jquery json object

我有一个在JSONlint中验证的JSON,但我不能使用JSON.parse(),因为它不起作用。这里的JSON有什么问题,如果JSON.prase()不能用于我的替代方案。

JSON字符串:"{Products: [{Id: 1,Increment: 5,Max: 1000,Min: 25,allowed: false,Desc: product description,Name:Product Name,Qty: 0}]}"

2 个答案:

答案 0 :(得分:2)

要使JSON有效,您的对象键必须在双引号内:

{ "validKey": 123 }
  ^        ^
  |        |
  ------------- These double-quotes are required!

JSONLint说它没关系,因为你粘贴了JSON,就像你粘贴在这里一样,用引号括起来:

"{Products: [{Id: 1,Increment: 5,Max: 1000,Min: 25,allowed: false,Desc: product description,Name:Product Name,Qty: 0}]}"

这是一个内部有JSON的json字符串,而不是JSON!

如果您在没有引号的情况下尝试使用JSONLint,则会收到此错误:

Error: Parse error on line 1:
{   Products: [{        Id: 1
--^
Expecting 'STRING', '}', got 'undefined'

答案 1 :(得分:1)

应引用您的字符串和键。这是有效的JSON,将由JSON.parse()

正确解析
{
  "Products": [
    {
      "Id": 1,
      "Increment": 5,
      "Max": 1000,
      "Min": 25,
      "allowed": false,
      "Desc": "product description",
      "Name": "Product Name",
      "Qty": 0
    }
  ]
}

您可以在此处详细了解该标准:https://www.json.org/