FormatArc JSON Formatter の実行結果FormatArc JSON Formatter の実行結果
公開日: 2026-03-20更新日: 2026-06-04

JSON整形(Pretty Print)の方法【2026年版】ブラウザ・jq・コードで実現する手順

JSONを整形(pretty print)する3つの方法を解説。ブラウザで即座に整形できるオンラインツール、コマンドラインのjq・Python、コード内のJSON.stringifyを使い分けるコツまで。

結論から

  • ブラウザで整形: FormatArc の JSON Formatter に貼り付ければ完結(データはブラウザ内のみ)
  • ターミナルで整形: echo '{...}' | jq . または python3 -m json.tool
  • コード内で整形: JavaScript/Node.js では JSON.stringify(data, null, 2)

3つのアプローチを順に解説します。よくあるエラーの対処法と使い分けの判断基準も後半で紹介します。

JSON 整形とは

JSON(JavaScript Object Notation)はデータのやり取りで最も広く使われるフォーマットの一つです。API レスポンスや設定ファイルなど、さまざまな場面で目にします。

しかし、圧縮(minify)された JSON は人間には読みにくいため、整形(pretty-print)して構造を視覚的に把握することが日常的に必要になります。

よくある JSON の構文エラー

JSON の文法は2つの公式仕様で定義されています。RFC 8259(IETF 標準「The JavaScript Object Notation (JSON) Data Interchange Format」)と ECMA-404(ECMA 標準「The JSON Data Interchange Syntax」)です。どちらも同じ構文を定義しているため、以下のルールはフォーマッターの独自仕様ではなく、すべて仕様そのものに由来します。

1. 末尾カンマ(trailing comma)

{
  "name": "example",
  "value": 42,
}

最後のプロパティの後にカンマがあると、JSON としては不正です。JavaScript では許容されますが、JSON の仕様では禁止されています。

2. シングルクォート

{'name': 'example'}

JSON ではダブルクォート " のみが有効です。シングルクォート ' は使えません。

3. キーのクォート忘れ

{name: "example"}

JSON ではすべてのキーをダブルクォートで囲む必要があります。

JSON 構文エラー修正早見表

以下の表は、よくある構文エラーと RFC 8259 / ECMA-404 が求める修正方法を対応づけたものです。

誤り 不正な例 修正方法
末尾カンマ {"a": 1,} 最後の値の後のカンマを削除する: {"a": 1}
シングルクォート {'a': 'b'} ダブルクォートを使う: {"a": "b"}
キーのクォート忘れ {a: 1} すべてのキーをダブルクォートで囲む: {"a": 1}
コメント {"a": 1} // note JSON にコメント構文はない。コメントを削除する
先頭ゼロ {"a": 01} 数値の先頭にゼロは置けない: {"a": 1}
数値の正符号 {"a": +1} 先頭の + を外す: {"a": 1}
16進数 / 8進数 {"a": 0x1F} 10進数表記のみ許される: {"a": 31}
NaN / Infinity {"a": NaN} JSON の値として無効。数値か null を使う
undefined 値 {"a": undefined} undefined は JSON の値ではない。null を使う
エスケープされていない制御文字 "..." 内の改行 文字列内では \n としてエスケープする
エスケープされていないバックスラッシュ {"a": "C:\path"} バックスラッシュをエスケープする: {"a": "C:\\path"}
値のシングルクォート {"key": 'value'} 文字列の値もダブルクォートが必要: {"key": "value"}

JSON.stringify() で Pretty Print する

JavaScript や Node.js では、JSON.stringify() の第3引数にインデント幅を指定するだけで整形済みの JSON が得られます。

const data = { name: "Alice", age: 30, roles: ["admin", "editor"] };

// 2スペースのインデントで整形
console.log(JSON.stringify(data, null, 2));

出力結果:

{
  "name": "Alice",
  "age": 30,
  "roles": [
    "admin",
    "editor"
  ]
}

第2引数はフィルター用の replacer 関数または配列です。すべてのプロパティを残す場合は null を渡します。

タブ文字でインデントしたい場合は次のように書きます。

JSON.stringify(data, null, "\t");

コマンドラインで JSON を整形する

jq を使う方法

jq は軽量なコマンドラインの JSON プロセッサです。パイプで渡すだけで整形できます。

echo '{"name":"Alice","age":30}' | jq .

Python を使う方法

Python に標準搭載されている json モジュールでも整形できます。

echo '{"name":"Alice","age":30}' | python3 -m json.tool

curl のレスポンスを整形する

API のデバッグ時には、curljq を組み合わせるとレスポンスをそのまま整形できます。

curl -s https://api.example.com/data | jq .

ブラウザで手軽に整形する

FormatArc の JSON Formatter を使えば、ブラウザ内だけで JSON を整形できます。データはサーバーに送信されないため、業務データや API レスポンスも安心して貼り付けられます。

使い方

  1. 入力欄に JSON を貼り付ける
  2. 「実行」ボタンを押す
  3. 整形結果をコピーする

たったこれだけのステップで、読みやすい JSON が手に入ります。

JSON Formatter の実行結果 — 左に圧縮 JSON を入力し、右に整形結果が表示されているJSON Formatter の実行結果 — 左に圧縮 JSON を入力し、右に整形結果が表示されている

整形前に JSON を検証する

JSON が壊れていると整形に失敗します。原因の多くは末尾カンマ、シングルクォート、キーのクォート忘れ(上記参照)です。設定ファイルにコメントを残したい場合は JSONC や JSON5 などの方法を検討してください。エラーメッセージに文字位置が含まれていても、大きなファイルでは該当箇所を見つけにくいことがあります。

FormatArc の JSON Formatter はエラー発生箇所の行番号を表示するため、問題の特定が容易です。よくあるパースエラーの原因と対処法は JSON Parse Error の解決方法 で詳しく解説しています。

Chrome 拡張で JSON を自動整形する

ブラウザで API エンドポイントを直接開いて確認することが多い場合は、Chrome 拡張を使う方法もあります。JSONView や JSON Formatter など、代表的な拡張の違いと選び方はJSON整形のChrome拡張おすすめ比較で解説しています。

他のデータ形式との連携

JSON の整形は、フォーマット間の変換を含むワークフローの一部になることがよくあります。

今すぐ試してみる

整形したい JSON があれば、JSON Formatter を開いてデータを貼り付けるだけです。会員登録もサーバー送信も不要で、すぐに整形結果が得られます。

まとめ

  • JSON の整形(Pretty Print)は開発・運用で日常的に必要な作業
  • JSON.stringify(data, null, 2) でコード内から手軽に整形できる
  • コマンドラインでは jqpython3 -m json.tool が便利
  • よくあるエラーは末尾カンマ、シングルクォート、キーのクォート忘れ
  • FormatArc ならブラウザだけで安全に整形できる