JSON.parse:期望的属性名称或'}'

rea*_*ber 36 parsing json

数据包含(/ "/):

 {"test":"101","mr":"103","bishop":"102"}
Run Code Online (Sandbox Code Playgroud)

脚本:

console.log($.parseJSON(result));
Run Code Online (Sandbox Code Playgroud)

我收到错误,

JSON.parse: expected property name or '}'.
Run Code Online (Sandbox Code Playgroud)

alc*_*ion 68

在JSON文件中使用单引号时有相同的问题,更改为所有字符串属性/值的双引号,它现在正常工作,希望它可以帮助任何人......

更改:

JSON.parse("{'wrongQuotes': 5}") 
Run Code Online (Sandbox Code Playgroud)

至:

JSON.parse('{"rightQuotes": 5}')
Run Code Online (Sandbox Code Playgroud)

  • 这么傻的东西!你是对的.这个不起作用:JSON.parse("{'ple':2}")但是这个做了:JSON.parse('{"ple":2}') (4认同)
  • @Pithikos,JSON规范需要双引号,而不是单引号.这就是规范定义的方式:http://www.json.org/ (3认同)

Jon*_*n M 21

如果您正在接收带编码的JSON,则"必须在执行之前将每个实例替换"为true .就像是:"JSON.parse

myJSONstring.replace(/"/ig,'"');
Run Code Online (Sandbox Code Playgroud)


aex*_*exl 17

我的情况更简单。

\n

由于混淆了 JSON 和普通 JS,我没有将对象键放在双引号中。

\n

\xe2\x9d\x8c:

\n
{\n    title: "Hello World!"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x9c\x85:

\n
{\n    "title": "Hello World!"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

讽刺的是,邮差甚至向我强调了这一点,但我忽略了。睡眠就是答案。

\n


小智 8

对于任何使用 Laravel Blade 并在视图中声明 JS 变量的人。

您需要使用:

var json = JSON.parse('{!! $json !!}');
Run Code Online (Sandbox Code Playgroud)

否则,由于引号被解析为“,您将收到此错误