440 votes

JavaScript: Comment puis-je générer du JSON formaté facile à lire directement à partir d'un objet?

Doublon possible:
Comment puis-je embellir JSON programmation?

Je sais comment générer du JSON à partir d'un objet en utilisant JSON.stringify, ou dans mon cas le pratique jQuery JSON de Google Code.

Maintenant, cela fonctionne bien, mais la sortie est difficile à lire pour les humains. Existe-t-il un moyen facile, une fonction, ou quoi que ce soit pour produire un fichier JSON joliment formaté?

Voici ce que je veux dire:

JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}});

donne...

"{"a":1,"b":2,"c":{"d":1,"e":[1,2]}}"

J'aimerais quelque chose comme ceci à la place:

{
 "a":1,
 "b":2,
 "c":{
    "d":1,
    "e":[1,2]
 }
}

Par exemple, avec des sauts de ligne et des tabulations ajoutés. C'est beaucoup plus facile à lire pour les gros documents.

J'aimerais idéalement faire cela sans ajouter de grosses bibliothèques, par exemple, pas de Prototype, YUI, ou autre.

0 votes

Peut-être que cela aidera: jsoneditoronline.org

979voto

Cristian Sanchez Points 11266

JSON.stringify prend plus d'arguments facultatifs.

Essayer :

 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, 4); // Indenté de 4 espaces
 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, "\t"); // Indenté avec une tabulation

De :

Comment puis-je rendre le JSON plus beau programmation?

Il devrait fonctionner dans les navigateurs modernes, et il est inclus dans json2.js si vous avez besoin d'une solution de secours pour les navigateurs qui ne prennent pas en charge les fonctions d'aide JSON. Pour des raisons d'affichage, placez la sortie dans une balise

 pour afficher les nouvelles lignes.

8 votes

La réponse n'est-elle pas un peu imprécise étant donné que l'OP a écrit sa version embellie avec le "e":[1,2] tout sur une seule ligne ? Est-il possible de mélanger du JSON indenté et non indenté avec stringify?

74 votes

N'oubliez pas de le mettre à l'intérieur de quelque chose comme pour obtenir de nouvelles lignes.

4 votes

Y a-t-il un moyen d'avoir des sauts de ligne dans l'objet lui-même ?

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