Javascript 为什么这个JSON.parse()计算会导致错误?

Javascript 为什么这个JSON.parse()计算会导致错误?,javascript,json,parsing,Javascript,Json,Parsing,为什么跑步: JSON.parse("{ Facet : 'asdf' }"); 导致错误Uncaught SyntaxError:JSON中位置1(…)处出现意外标记F?键和值(如果是字符串)对应始终用双引号括起来“”。否则,它不是有效的JSON字符串 JSON.parse("{Facet:'asdf'}") // with escaping 应该是 JSON.parse("{\"Facet\":\"asdf\"}") // without escaping 或 如果该值的类型为Bo

为什么跑步:

JSON.parse("{ Facet : 'asdf' }");
导致错误
Uncaught SyntaxError:JSON中位置1(…)处出现意外标记F

键和值
(如果是字符串)
对应始终用双引号括起来
“”
。否则,它不是有效的JSON字符串

JSON.parse("{Facet:'asdf'}")  // with escaping
应该是

JSON.parse("{\"Facet\":\"asdf\"}")  // without escaping

如果该值的类型为
Boolean
Number
null
,则无需将其括在双引号中

以下类型的值不需要双引号

JSON.parse('{"Facet": 100}')
JSON.parse('{"Facet": true}')
JSON.parse('{"Facet": null}')
不是有效的JSON字符串。以下是:

{"Facet": "asdf"}

它们也必须被引用。
如果您通过代码将数据编码为json(例如:php数组到json),它应该为您已经

未引用的属性和错误的单引号而不是双引号进行编码。将来,在提问之前,你应该在jslint检查你的json,确保它是有效的。天啊,在这样一个无辜的问题上,你得到了多张反对票,似乎被否决的人都是一个非常暴躁的人
{Facet:'asdf'}
{"Facet": "asdf"}