为什么无法解析此JSON对象?

时间:2018-12-26 12:53:53

标签: javascript html ajax

在我的JavaScript文件中,

ajax响应文本的声明和json解析是这样的:

var subcats = JSON.parse(this.responseText);

解析的假定responseText是这样的:

{"presubcatId":"1","precatId":"1","presubcatName":"HR Manager"}{"presubcatId":"2","precatId":"1","presubcatName":"Marketing Manager"}

它给了我这个错误:

SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 2 column 64 of the JSON data

语法错误是什么?帮助

6 个答案:

答案 0 :(得分:3)

您的JSON具有多个元素,因此应像这样包装在数组/列表中

[{"presubcatId":"1","precatId":"1","presubcatName":"HR Manager"}{"presubcatId":"2","precatId":"1","presubcatName":"Marketing Manager"}]

希望有帮助

答案 1 :(得分:1)

您的JSON无效。您需要像这样更改它:

[{"presubcatId":"1","precatId":"1","presubcatName":"HR Manager"},{"presubcatId":"2","precatId":"1","presubcatName":"Marketing Manager"}]

答案 2 :(得分:1)

您的JSON数据无效,因此您遇到了问题,

var temp=[];
temp=[{"presubcatId":"1","precatId":"1","presubcatName":"HR Manager"},{"presubcatId":"2","precatId":"1","presubcatName":"Marketing Manager"}]

console.log(JSON.stringify(temp))

答案 3 :(得分:1)

您的JSON具有多个元素。因此,必须将其视为Array。参见下图。

下面是有效的JSON结构。

[{"presubcatId":"1","precatId":"1","presubcatName":"HR Manager"},{"presubcatId":"2","precatId":"1","presubcatName":"Marketing Manager"}]

enter image description here

答案 4 :(得分:1)

JSON.parse()方法解析一个JSON字符串,构造该字符串描述的JavaScript值或对象。因此,如果您只有一个物品,可以像这样使用它:

JSON.parse('{"presubcatId":"1", "precatId":"1", "presubcatName":"HR Manager"}');

但是在您的情况下,您应该将多个项目包装在方括号[]中,并用逗号分隔,否则会出现SyntaxError:

JSON.parse('[{"presubcatId":"1", "precatId":"1", "presubcatName":"HR Manager" }, { "presubcatId": "2", "precatId": "1", "presubcatName": "Marketing Manager"}]');

var string = '[{"presubcatId":"1", "precatId":"1", "presubcatName":"HR Manager" }, { "presubcatId": "2", "precatId": "1", "presubcatName": "Marketing Manager"}]';

var json = JSON.parse(string);

console.log(json);

答案 5 :(得分:0)

您的json对象不是有效的json。您可以在此站点上进行检查。当我需要格式化或验证Json对象时,它对我有很大帮助。

https://jsonlint.com/

这是您的json对象的格式,它说出您缺少的内容。

Json validated with jsonlint