短い答え: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 | サイズ縮小のため空白を取り除く | 変えない |
| Validate | JSON が構文的に正しいか確認 | 変えない |
| 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 方法 を参照。
関連ツール & ガイド
- JSON Fix —— ブラウザで JSON を pretty-print(修復も)
- JSON のフォーマット方法 —— コードと CLI まで揃った完全 how-to
- JSON の minify 方法 —— 反対の操作
- JSON Viewer と JSON Formatter —— 表示 vs フォーマット
- JSON とは? —— なぜ空白が無意味なのか