Почему этот объект JSON не может быть проанализирован? - PullRequest
0 голосов
/ 26 декабря 2018

В моем файле JavaScript,

Объявление и синтаксический анализ json для текста ответа ajax выглядит так:

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 голосов
/ 26 декабря 2018

Метод JSON.parse () анализирует строку JSON, создавая значение JavaScript или объект, описываемый этой строкой.Таким образом, вы можете использовать его следующим образом, если у вас есть один элемент:

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

, но в вашем случае у вас есть несколько элементов, которые должны быть заключены в квадратные скобки [] и разделены запятымиили имеется ошибка синтаксиса:

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);
0 голосов
/ 26 декабря 2018

Ваш JSON имеет несколько элементов и поэтому должен быть заключен в массив / список, подобный этому

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

Надеюсь, это поможет

0 голосов
/ 26 декабря 2018

Ваш JSON имеет несколько элементов.Таким образом, это должно рассматриваться как массив.См. Изображение ниже.

Ниже приведена действительная структура JSON.

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

enter image description here

0 голосов
/ 26 декабря 2018

Ваш объект json не является допустимым json.Вы можете проверить это на этом сайте.Это мне очень помогает, когда мне нужно отформатировать или проверить объект Json.

https://jsonlint.com/

Вот ваш отформатированный объект json и он говорит о том, что вам не хватает.

Json validated with jsonlint

0 голосов
/ 26 декабря 2018

ваши данные JSON недействительны, поэтому у вас возникли проблемы,

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

console.log(JSON.stringify(temp))
0 голосов
/ 26 декабря 2018

Ваш JSON недействителен.Вам нужно изменить это так:

[{"presubcatId":"1","precatId":"1","presubcatName":"HR Manager"},{"presubcatId":"2","precatId":"1","presubcatName":"Marketing Manager"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...