web-dev-qa-db-fra.com

Javascript: comment générer un JSON formaté facile à lire directement à partir d'un objet?

Duplicate possible:
Comment puis-je embellir JSON par programme?

Je sais comment générer du JSON à partir d'un objet à l'aide de JSON.stringify ou, dans mon cas, du très pratique jquery-json de google code ( https://github.com/krinkle/jquery-json ).

Maintenant, cela fonctionne bien, mais le résultat est difficile à lire pour les humains. Existe-t-il un moyen/une fonction/quelque chose de simple pour sortir un fichier json parfaitement 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 plutôt quelque chose comme ceci:

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

Par exemple. avec nouvelles lignes et onglets ajoutés. C'est beaucoup plus facile à lire pour les gros documents.

J'aimerais le faire idéalement sans ajouter d'énormes bibliothèques - par exemple. pas prototype ou YUI ou autre.

323
Ben Clayton

JSON.stringify prend plus de arguments optionnels .

Essayer:

 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, 4); // Indented 4 spaces
 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, "\t"); // Indented with tab

De:

Comment puis-je embellir JSON par programme?

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'assistance JSON. Pour l'affichage, placez la sortie dans une balise <pre> pour que les nouvelles lignes s'affichent.

744
Cristian Sanchez