← 記事一覧

JSON Pretty Print vs JSON Format: 何が違うか?

JSON にとって pretty print、format、beautify は同じ意味。理由、本当に違うこと (minify、validate、tree view)、そしてオンラインで JSON を pretty print する方法を解説。

短い答え:JSON において 「pretty print」と「format」は同じこと —— 「beautify」も同じです。三つすべて、データを変えずに一貫したインデントと改行を加えて構造を読みやすくする、という意味です。とはいえ混乱は実在します。近くにいくつか 本当に異なる 操作(minify、validate、ツリー表示)が並んでいるからです。本記事は用語を整理し、実際の違いを示します。

Pretty Print、Format、Beautify —— 同じ操作

「Pretty print JSON」「format JSON」「beautify JSON」はすべて同じ操作を指します:JSON 値(多くは 1 行のコンパクトな文字列)を、インデントと改行付きで再シリアライズする。出力は入力と意味的に同一 です —— トークン間の空白は JSON では無意味なので、どちらの形式からもパーサは同じデータを生成します。

// コンパクト(API が返す形)
{"user":{"name":"Ada","roles":["admin","editor"]}}

// pretty-printed / formatted / beautified —— データは同じ
{
  "user": {
    "name": "Ada",
    "roles": [
      "admin",
      "editor"
    ]
  }
}

つまりツールが「Format」「Beautify」「Pretty Print」を別のボタンとして提供していても、やっているのは同じ仕事です。覚えるべき意味のある技術的区別はありません。

では実際に何が違うのか?

有用な区別は pretty-print と format の間にはなく —— 「フォーマット」と次の近隣操作との間にあります:

操作何をするデータを変える?
Pretty print / format / beautify可読性のために空白を加える変えない
Minifyサイズ縮小のため空白を取り除く変えない
ValidateJSON が構文的に正しいか確認変えない
Tree view対話的・折りたたみ可能な構造を表示変えない
Repair無効な JSON(引用符、カンマ)を修復して parse 可能にする変える(構文修正)

Minify は pretty print の正反対 —— JSON の minify 方法 を参照。検証は別チェック(JSON の検証方法)、大きな payload をツリーで探索するのも独立した話(JSON ツリービューア)です。入力がそもそも parse できないなら、format ではなくまず repair が必要です。

JSON を pretty print する方法

ツールがどの語を使っていても、仕組みは同じです:

// JavaScript —— 第 3 引数がインデント
JSON.stringify(value, null, 2);                 // 値から
JSON.stringify(JSON.parse(raw), null, 2);       // JSON 文字列から

# Python
import json
json.dumps(data, indent=2)

# コマンドライン
jq . data.json                                  # jq は既定で pretty-print
python3 -m json.tool data.json

完全なウォークスルー —— キーのソート、コマンドラインオプション、他形式からの変換 —— は JSON のフォーマット方法 を参照。

オンラインで JSON を pretty print

コードを書かずに pretty-print するなら、JSON を JSON Fix に貼り付けてください:一貫した 2 スペースのインデントで整形(よくあるエラーも先に修復するので完全に妥当でない JSON でも動きます)。すべてブラウザで動き、アップロードはありません。大きなドキュメントを対話的に見たいなら JSON Viewer を使ってください。

よくある質問

「pretty print JSON」と「format JSON」は同じ?

はい。JSON について pretty print、format、beautify はすべて同じ意味:データを変えずに可読性のためにインデントと改行を加えること。

pretty print で自分の JSON データは変わる?

変わりません。トークン間の空白は JSON では無意味なので、pretty-printed とコンパクトの形は同じデータ構造に parse されます。

JavaScript で JSON を pretty print するには?

JSON.stringify(value, null, 2) を使います —— 第 3 引数でインデント(2 スペース、4 スペース、あるいは '\t' でタブ)。文字列から始めるなら先に parse。

JSON の pretty print の反対は?

Minify —— 意味のない空白をすべて取り除き、コンパクトな 1 行 JSON を作る。JSON の minify 方法 を参照。

関連ツール & ガイド