在我的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
语法错误是什么?帮助
答案 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"}]
答案 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对象时,它对我有很大帮助。
这是您的json对象的格式,它说出您缺少的内容。