web-dev-qa-db-ja.com

Javascript:オブジェクトから直接フォーマットされた読みやすいJSONを生成する方法

可能な重複:
プログラムでJSONを美化するにはどうすればよいですか?

私はJSON.stringifyを使ってオブジェクトからJSONを生成する方法を知っています。私の場合はGoogle codeからの便利なjquery-json( https://github.com/krinkle/jquery-json )。

これで問題なく動作しますが、出力は人間にとって読みにくいです。きちんとフォーマットされたjsonファイルを出力する簡単な方法/機能/何かはありますか?

これが私の言っていることです。

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

与えます..

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

代わりにこのようなものが欲しいのですが。

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

例えば。改行とタブが追加されました。大きな文書の方が読みやすくなります。

巨大なライブラリを追加せずに理想的にこれを行いたいのです。プロトタイプでもYUIでも何でもない。

311
Ben Clayton

JSON.stringifyはもっと多くの オプションの引数 を取ります。

試してください:

 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

から:

プログラムでJSONを美しくするにはどうすればよいですか?

最近のブラウザでも動作するはずです。JSONヘルパー関数をサポートしていないブラウザでフォールバックが必要な場合は、 json2.js に含まれています。表示目的で、出力を<pre>タグに入れて、改行を表示させます。

715