为什么这个JSON.parse()评估会导致错误?

时间:2016-10-27 18:27:32

标签: javascript json parsing

为什么要跑:

JSON.parse("{ Facet : 'asdf' }");

导致错误Uncaught SyntaxError: Unexpected token F in JSON at position 1(…)

3 个答案:

答案 0 :(得分:2)

密钥和值(if a string)对应始终用双引号""括起来。否则它不是有效的JSON字符串。

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

应该是

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

JSON.parse('{"Facet":"asdf"}')

如果值的类型为BooleanNumbernull,则无需将其括在双引号中。

以下类型的值

不需要双引号
JSON.parse('{"Facet": 100}')
JSON.parse('{"Facet": true}')
JSON.parse('{"Facet": null}')

答案 1 :(得分:2)

{Facet:'asdf'}

不是有效的JSON字符串。以下是:

{"Facet": "asdf"}

答案 2 :(得分:0)

他们的钥匙也必须引用。 如果您通过代码将数据编码为json(例如:php array to json),它应该已经为您执行此操作