ウェブサイト検索

JavaScript: オブジェクトからフォーマット済みで読みやすいJSONを直接生成するにはどうすればよいですか?


重複の可能性:
JSONをプログラムで美しく表示するにはどうすればよいですか?

私はオブジェクトから JSON を生成する方法を知っています。JSON.stringify を使う方法や、私の場合は Google Code の便利な 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]
 }
}

例:改行やタブが追加されています。大きな文書では読むのがずっと簡単です。

できれば、PrototypeやYUIなどの大きなライブラリを追加せずにこれをやりたいです。

回答 #1

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> タグに入れてください。

関連記事