76 votes

JSON.stringify retournant []

Pourquoi JSON.stringify() retournerait :

 []

La même chose se produit avec jQuery : $.JSON.encode()

Qu'est-ce qui pourrait causer cela ? Je passe dans un simple tableau d'objets, où chaque objet a des propriétés de chaîne. J'ai parcouru et alerté les propriétés de chaque objet et tout semble bien, mais pour une raison quelconque, les deux méthodes d'encodage renvoient [] .

86voto

amol challawar Points 901

DANS votre déclaration de tableau

 var count_review= new Array() 

au lieu de cette utilisation

 var count_review={}; 

Ça marche!

36voto

Ehsan Horrible Points 51

Si votre tableau utilise une string , au lieu d'un int , stringify ignore cette valeur.

 var array = [];
array['name'] = 'johan';
array['age'] = 20;
alert(JSON.stringify(array))// return []

Mais si le tableau utilise un "int" comme clé, alors stringify le renverra.

 var array = [];
array[0] = 'johan';
array[1] = 20;
alert(JSON.stringify(array))// return["johan",20]

15voto

cansu Points 482

J'ai rencontré le même problème car la valeur de ma clé de tableau json était une chaîne de caractères. Il n'est pas possible de modifier la structure. Je résous donc mon problème en convertissant mon tableau json en json et cela résout complètement mon problème. Objet Json stringé avec succès.

Pour changer le tableau en objet :

 var *your_object* = Object.assign({}, *your_array*);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X