我有一个在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}]}"
答案 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/