web-dev-qa-db-fra.com

Erreur de caractère inattendu JSON.parse

Je reçois cette erreur:

JSON.parse: caractère inattendu

quand je lance cette déclaration dans firebug:

JSON.parse({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false});

Pourquoi est-ce? La chaîne JSON me semble correcte et je l’ai également testée avec JSHint. L'objet transmis dans le cas ci-dessus est une réponse du serveur avec le type de contenu défini sur application/json

109
krishna

Vous n'analysez pas une chaîne, vous analysez un objet déjà analysé :)

var obj1 = JSON.parse('{"creditBalance":0,...,"starStatus":false}');
//                    ^                                          ^
//                    if you want to parse, the input should be a string 

var obj2 = {"creditBalance":0,...,"starStatus":false};
// or just use it directly.
220
kennytm

Vous pouvez vous assurer que l'objet en question est structuré avant de le transmettre à une fonction d'analyse en utilisant simplement JSON.stringify().

Mis à jour votre ligne ci-dessous,

JSON.parse(JSON.stringify({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false}));

ou si vous avez JSON stocké dans une variable:

JSON.parse(JSON.stringify(yourJSONobject));
35
ScrapCode