SyntaxError: JSON.parse: bad parsing
Сообщение
SyntaxError: JSON.parse: unterminated string literalSyntaxError: JSON.parse: bad control character in string literalSyntaxError: JSON.parse: bad character in string literalSyntaxError: JSON.parse: bad Unicode escapeSyntaxError: JSON.parse: bad escape characterSyntaxError: JSON.parse: unterminated stringSyntaxError: JSON.parse: no number after minus signSyntaxError: JSON.parse: unexpected non-digitSyntaxError: JSON.parse: missing digits after decimal pointSyntaxError: JSON.parse: unterminated fractional numberSyntaxError: JSON.parse: missing digits after exponent indicatorSyntaxError: JSON.parse: missing digits after exponent signSyntaxError: JSON.parse: exponent part is missing a numberSyntaxError: JSON.parse: unexpected end of dataSyntaxError: JSON.parse: unexpected keywordSyntaxError: JSON.parse: unexpected characterSyntaxError: JSON.parse: end of data while reading object contentsSyntaxError: JSON.parse: expected property name or '}'SyntaxError: JSON.parse: end of data when ',' or ']' was expectedSyntaxError: JSON.parse: expected ',' or ']' after array elementSyntaxError: JSON.parse: end of data when property name was expectedSyntaxError: JSON.parse: expected double-quoted property nameSyntaxError: JSON.parse: end of data after property name when ':' was expectedSyntaxError: JSON.parse: expected ':' after property name in objectSyntaxError: JSON.parse: end of data after property value in objectSyntaxError: JSON.parse: expected ',' or '}' after property value in objectSyntaxError: JSON.parse: expected ',' or '}' after property-value pair in object literalSyntaxError: JSON.parse: property names must be double-quoted stringsSyntaxError: JSON.parse: expected property name or '}'SyntaxError: JSON.parse: unexpected characterSyntaxError: JSON.parse: unexpected non-whitespace character after JSON data
Тип ошибки
Что пошло не так?
JSON.parse()
обрабатывает (парсит) строку в формате JSON. Это строка должна соответствовать формату, иначе будет выведена ошибка, что был нарушен синтаксис.
Examples
JSON.parse()
не допускает запятые
Метод JSON.parse() не разрешает использование, так называемых, trailling запятых.
Обе строки выдадут ошибку типа SyntaxError:
JSON.parse("[1, 2, 3, 4,]");JSON.parse('{"foo": 1,}');// SyntaxError JSON.parse: unexpected character// at line 1 column 14 of the JSON data
Необходимо убрать последние запятые в строках и тогда ошибки не будет:
JSON.parse("[1, 2, 3, 4]");JSON.parse('{"foo": 1}');
Названия свойств должны быть в двойных кавычках
Вы не можете использовать одинарные кавычки в именах свойств. Например, 'foo'.
JSON.parse("{'foo': 1}");// SyntaxError: JSON.parse: expected property name or '}'// at line 1 column 2 of the JSON data
Вместо этого необходимо написать "foo":
JSON.parse('{"foo": 1}');
Незначащие нули или плавающая точка без последующей цифры
Вы не можете использовать незначащие нули, например, 01. Плавающая точка должна всегда сопровождаться хотя бы одной цифрой после неё.
JSON.parse('{"foo": 01}');// SyntaxError: JSON.parse: expected ',' or '}' after property value// in object at line 1 column 2 of the JSON dataJSON.parse('{"foo": 1.}');// SyntaxError: JSON.parse: unterminated fractional number// at line 1 column 2 of the JSON data
Вместо этого напишите просто 1 без нуля и используйте хотя бы одну цифру после точки:
JSON.parse('{"foo": 1}');JSON.parse('{"foo": 1.0}');