Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
SyntaxError: JSON.parse: bad parsing
Message
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 dataSyntaxError: JSON.parse Error: Invalid character at position {0} (Edge)Dans cet article
Type d'erreur
SyntaxErrorQuel est le problème ?
Lorsque la méthodeJSON.parse() analyse (parse) une chaîne de caractères en JSON, cette chaîne doit être du JSON valide et une exception sera levée si la syntaxe est incorrecte.
Exemples
>JSON.parse() n'accepte pas les virgules en fin de tableau
Les deux lignes qui suivent déclencheront une exceptionSyntaxError :
JSON.parse("[1, 2, 3, 4, ]");JSON.parse('{"foo" : 1, }');// SyntaxError JSON.parse: unexpected character// at line 1 column 14 of the JSON dataPour que la méthode puisse analyser le JSON correctement, on évitera les virgules en fin de tableau :
JSON.parse("[1, 2, 3, 4 ]");JSON.parse('{"foo" : 1 }');Les noms des propriétés doivent être entre double quotes
On ne peut pas utiliser de quotes simples pour indiquer le nom d'une propriété (ex.'toto').
JSON.parse("{'toto' : 1 }");// SyntaxError: JSON.parse: expected property name or '}'// at line 1 column 2 of the JSON dataÀ la place, on écrira"toto" :
JSON.parse('{"toto" : 1 }');Zéros en début de nombres et points décimaux
On ne peut pas utiliser de zéros en début de nombre (ex. 01). Par ailleurs, les nombres décimaux doivent avoir une partie décimale, on ne peut pas terminer un nombre par un point.
JSON.parse('{"toto" : 01 }');// SyntaxError: JSON.parse: expected ',' or '}' after property value// in object at line 1 column 2 of the JSON dataJSON.parse('{"toto" : 1. }');// SyntaxError: JSON.parse: unterminated fractional number// at line 1 column 2 of the JSON dataPour que cela fonctionne, on écrira simplement 1 sans 0 devant et au moins un chiffre après le séparateur décimal :
JSON.parse('{"toto" : 1 }');JSON.parse('{"toto" : 1.0 }');