2016-05-31 192 views
0

我有这样的JSON字符串:为什么我不能解析与JSON.parse这个JSON字符串()

[{'Datum': 1465689600, 'Anwesend': false},{'Datum': 1465603200, 'Anwesend': false},{'Datum': 1465516800, 'Anwesend': false},{'Datum': 1465430400, 'Anwesend': false},{'Datum': 1465344000, 'Anwesend': false},{'Datum': 1465257600, 'Anwesend': false},{'Datum': 1465171200, 'Anwesend': false}] 

,我想,解析字符串。我想:

var res = $.parseJSON(anwesendstr); 

和:

var res = JSON.parse(anwesendstr); 

但每次我得到一个:

SyntaxError: Unexpected token ' in JSON at position 2 

异常

我能有人帮我解决这个问题?

+0

当您收到此类错误时,这意味着您的“JSON”无效。类似于在编程语言中获取语法错误。 –

+1

交互式测试JSON的简单方法是使用站点或工具来格式化或美化JSON文本。一个示例站点是:https://jsonformatter.curiousconcept.com/通过将JSON复制并粘贴到此站点或其他类似工具中,您将很快看到您的JSON格式不正确,与您包含的代码无关你上面的例子。 – dmarietta

回答

6

在JSON中,字符串和对象属性名称必须用双引号引起来。你的字符串用单引号括起来。更改为:

[{"Datum": 1465689600, "Anwesend": false},{"Datum": 1465603200, "Anwesend": false},{"Datum": 1465516800, "Anwesend": false},{"Datum": 1465430400, "Anwesend": false},{"Datum": 1465344000, "Anwesend": false},{"Datum": 1465257600, "Anwesend": false},{"Datum": 1465171200, "Anwesend": false}] 

它会工作。

您应该使用库函数来创建JSON,而不是在代码中手工构建JSON,以避免像这样的问题。库也将正确地转义JSON中的嵌入式引号和斜线。

相关问题