Menu
日本語

JSON フォーマッタ

ライブツリービューで JSON を整形・検証・探索。

最終更新

インデント
入力JSON を貼り付けて開始
出力
整形された JSON がここに表示されます — インデント調整、検証、コピーをワンクリックで。

JSONフォーマッターとは?

JSONフォーマッター(JSON美化ツール、pretty-printerとも呼ばれます)は、圧縮されていたり書式の崩れたJSONを、インデント付きの読みやすい形に整えるツールです。APIレスポンスの確認、設定ファイルの読み解き、ログのデバッグ、テストフィクスチャの比較、フロントエンドとバックエンドのデータ受け渡しなど、開発の現場でもっとも頻繁に使われるツールのひとつです。

JSONは仕様が厳格です。キーは必ずダブルクォートで囲む、文字列もダブルクォートで囲む、カンマの位置は正確に、開いた {[ は必ず閉じる、というルールがあります。フォーマッターはこの構造を見える化してくれますし、組み込みのバリデーターが構文の壊れている箇所を正確に教えてくれます。

JSONは「JavaScript Object Notation」の略です。もともとはJavaScriptから派生した記法ですが、いまではほぼすべてのプログラミング言語にJSONの読み書き機能が標準で備わっており、Webで構造化データをやり取りするときの事実上の標準フォーマットになっています。

使いながら身につくこと

  • オブジェクトは {} で名前付きフィールドを表し、配列は [] で順序付きリストを表します。両者は何階層でも入れ子にできます。
  • 整形済みJSONとミニファイ済みJSONは*まったく同じデータ*で、空白が変わるだけで意味は変わりません。サーバーは通信量を減らすためにミニファイ済みJSONを返すのが普通です。
  • JSONの値は string、number、boolean、null、object、array の6種類だけ。undefined も関数もコメントも存在しません。

JSON整形の手順

  1. 入力欄にJSONを貼り付ける

    APIレスポンス、ログファイル、設定ファイルなどからJSONをコピーして、左側に貼り付けます。ミニファイ済みでも、中途半端に整形されたものでも入力できます。

  2. インデント幅を選ぶ

    もっとも一般的なのはスペース2つ、次いで4つもよく使われます。プロジェクトの既存スタイルに合わせて選ぶのがおすすめです。

  3. 検証結果を確認する

    JSONが正しければ、整形済みの結果が右側に表示されます。エラーがある場合は、構文解析が失敗した行と文字位置がエラーメッセージで示されます。

  4. ツリービューで構造を眺める

    折りたたみ可能なツリービューを使えば、深くネストしたオブジェクトや配列を畳んで見渡せます。見慣れないAPIレスポンスの「形」を把握するには、これがいちばん早いです。

  5. コピーまたはミニファイする

    整形版をそのままコードやドキュメントに貼り付けてもよし、保存・通信用に1行のミニファイ形式に戻してもよし、です。

JSON構文クイックリファレンス

JSONを構成する要素はこれですべてです。ここに載っていないものはJSONとして無効です。仕様: RFC 8259ECMA-404

トークン意味
{ }オブジェクト — キーと値のペアの集合{"name": "Maya"}
[ ]配列 — 順序のある値のリスト[1, 2, 3]
"..."文字列 — 必ずダブルクォートで囲む"hello"
Number整数または小数。クォートで囲まない、先頭の + も不可42, -3.14
true / false真偽値(小文字のみ)true
null値が空・存在しないことを表すnull
:キーと値のあいだの区切り"id": 7
,要素同士の区切り — 末尾には付けない[1, 2, 3]

試してみたいJSONサンプル

ありがちなAPIレスポンスを整形する

入力
{"user":{"id":7,"name":"Maya"},"skills":["HTML","JavaScript"]}
整形後
{  "user": {    "id": 7,    "name": "Maya"  },  "skills": ["HTML", "JavaScript"]}

整形すると、ネストしている user オブジェクトや skills 配列がひと目で読み取れるようになります。データそのものは何も変わっておらず、変わったのは空白だけです。

末尾カンマを見つける

無効
{  "name": "Coddy",  "active": true,}

JSONでは最後のプロパティの後ろにカンマを置くことは許されていません。バリデーターは閉じ波括弧 } の位置でエラーを示します。JavaScriptのオブジェクト記法をそのままJSONにコピペしたときに出やすい、定番のミスです。

値の型を見比べる

入力
{  "count": 3,  "countText": "3",  "enabled": true}

3 は数値、"3" は文字列、true はブール値で、JSONとしてはそれぞれ別の型になります。「形は合っているのに型が違う」ことが原因でAPIが失敗するケースは意外と多いです。

深くネストしたレスポンスを読む

入力
{  "data": {    "orders": [      { "id": 101, "items": [{ "sku": "A", "qty": 2 }] },      { "id": 102, "items": [] }    ]  }}

ツリービューで data.orders を畳んでおき、必要な階層だけを開いて構造を確認していくのがコツです。オブジェクトの配列を入れ子にするパターンは、RESTレスポンスでもっともよく見かける形です。

JSONでよくあるミス

  • キーや文字列をシングルクォートで囲んでしまう — JSONで使えるのはダブルクォートだけです。
  • JSONをJavaScriptオブジェクトと同じ感覚で書いてしまう。コメント、関数、undefined はJSONでは無効ですし、末尾カンマもパースエラーになります。
  • 数値の先頭に + を付けたり、先頭に 0 を付けたり(0 単体は除く)、数値型として扱いたいのにクォートで囲んだりしてしまうこと。

JSONフォーマッターのFAQ

JSONとは何ですか?
JSON(JavaScript Object Notation)は、構造化データを表すための軽量なテキストフォーマットです。キーと値のペアと配列で構成され、ほぼすべてのプログラミング言語でサポートされています。そのため、Web API、設定ファイル、メッセージペイロードの標準形式として広く使われています。
JSONはどうやって整形しますか?
JSONフォーマッターにJSONを貼り付け、インデント幅(通常はスペース2つ)を選ぶだけです。ツールが同じデータを改行とインデント付きで再出力してくれます。たいていのフォーマッターは、その場で構文の検証も同時に行ってくれます。
JSONフォーマッターとJSONバリデーターの違いは?
フォーマッターは、有効なJSONを読みやすいレイアウトに変換するツールです。一方のバリデーターは、そもそもそのJSONの構文が正しいかを検査するツールです。良いJSONツールはこの両方を兼ねています。
整形(pretty-print)するとデータは変わってしまいますか?
変わりません。整形で追加されるのはインデントと改行だけで、キー、配列、文字列、数値、ブール値、null といった中身はまったく同じままです。再度ミニファイすれば、元の通信向けの形に戻すこともできます。
JavaScriptのオブジェクトに見えるのに、JSONとしてエラーになるのはなぜ?
JSONはJavaScriptのオブジェクト記法より厳格だからです。キーや文字列はダブルクォートで囲む必要があり、コメントは書けず、末尾カンマ・シングルクォート・undefined もすべて使えません。
開発者は普段どんな場面でJSONを使っていますか?
JSONはあらゆる場所で登場します。REST・GraphQLのレスポンスやリクエストボディ、設定ファイル(package.jsontsconfig.json)、パッケージのメタデータ、ログ、ブラウザのlocalStorage、テストフィクスチャなどです。

詳しく見る

その他の開発者ツール

Coddyでコードを学ぼう

始める