JSON整形・構文チェック

JSON整形ツール(オンライン・構文チェック付き)

JSONを貼り付けると、すぐに見やすく整形(インデント)したり、1行に圧縮したり、キーを並べ替えたりできます。正しくないJSONなら、最初のエラーの行と列、問題の箇所、直し方を表示します。JSONはブラウザの外に送られません。

出力
インデント
  • 整形したJSON

    { "order": { "id": 12345678901234567890, "status": "発送済み", "items": [ { "sku": "MATCHA-100", "name": "宇治抹茶 100g", "qty": 2, "price": 1980 }, { "sku": "YUNOMI-7", "name": "有田焼 湯のみ", "qty": 1, "price": 3300 } ], "customer": { "name": "山田 花子", "zip": "150-0041", "address": "東京都渋谷区神南1-2-3", "newsletter": false }, "note": null } }

判定正しいJSON
キーの数18
ネストの深さ4
処理前のサイズ(バイト)335
処理後のサイズ(バイト)523
サイズの増減56.12%
行数27
オブジェクトの数5
配列の数1

数値と文字列は書かれたとおりにコピーしています。丸めたり、エスケープし直したりはしません。

計算はお使いの端末内で完結 · 計算式は既知の値で検証済み · 検証方法について

JSON整形ツールの使い方

  1. APIのレスポンス、設定ファイル、ログの1行など、JSONを入力欄に貼り付けます。貼り付けた時点でチェックと整形が行われます。
  2. 整形を選ぶと、スペース2つ・4つ・タブのいずれかでインデントした読みやすい形になります。圧縮(1行)を選ぶと、値と値のあいだの空白と改行をすべて取り除きます。
  3. キーを並べ替えるにチェックを入れると、すべてのオブジェクトのプロパティがアルファベット順になり、同じデータの2つの版を比べやすくなります。配列の順番は変わりません。
  4. 結果の横のコピーを押します。JSONが正しくない場合は、問題の内容、行と列、そしてその行の該当箇所の下に ^ の印を表示します。

整形・圧縮・構文チェックで何が変わり、何が変わらないか

整形(beautify、pretty print とも呼ばれます)は、プロパティや配列の要素を1行ずつに分け、階層の深さに応じて字下げします。圧縮はその逆で、いちばん短い形にします。どちらもデータの中身は変えません。構文チェックは、JSONの規格であるRFC 8259(ECMA-404と同じ文法)に照らして文字列を調べます。キーと文字列はダブルクォートで囲む、末尾にカンマを置かない、コメントは書かない、true・false・null は小文字、数値に先頭のゼロやNaN・Infinityを使わない、といった規則です。見つかった最初のエラーを報告します。

多くのオンライン整形ツールは、JavaScriptの JSON.parse で読み込んでから書き出し直しています。このツールは文字列を自前で読み、値を書かれたとおりに残します。

日本語入力で起きやすい「全角」のエラー

日本語入力(IME)をオンにしたまま記号を打つと、JSONで使う半角の記号が全角になり、見た目はほとんど同じなのにエラーになります。このツールでの表示と直し方は次のとおりです。

入力した文字表示されるエラー直し方
全角コロン「:」 {"name":1}コロンがありません半角の : にする
全角カンマ「,」・読点「、」 [1,2]カンマがありません半角の , にする
全角ダブルクォート「"」、かぎ括弧「」 {"a": 「b」}予期しない文字半角の " で囲む
“ ” (Word、メモアプリ、チャットで自動変換されたもの)カーブした引用符(“ ”)半角の " にする
全角スペース見えない文字削除するか半角スペースにする

文字列の中身("山田 花子" のような値)には全角文字をそのまま使えます。全角にしてはいけないのは、JSONの骨組みになる記号 { } [ ] : , " と、文字列の外の空白だけです。

そのほかのよくあるエラーと直し方

エラー正しくない例正しい例
末尾に余分なカンマ{"a": 1, "b": 2,}{"a": 1, "b": 2}
シングルクォート{'name': '花子'}{"name": "花子"}
キー名に引用符がない{name: "花子"}{"name": "花子"}
コメント{"port": 80 // web}{"port": 80}
PythonやJavaScriptの値{"x": None, "y": True, "z": undefined}{"x": null, "y": true, "z": null}
先頭のゼロ(郵便番号など){"zip": 0600001}{"zip": "060-0001"}
バックスラッシュが1つ{"path": "C:\Users"}{"path": "C:\\Users"}
値が複数並んでいる{"a": 1} {"b": 2}[{"a": 1}, {"b": 2}]

閉じ括弧が足りないとき、パーサーは最後まで読んで初めて気づくため、「JSONが途中で終わっています」は最後の行を指します。実際に抜けている } や ] はもっと上にあります。正しい部分だけを整形してみて、インデントがおかしくなる場所を探すのが近道です。

計算例:インデントでどれだけ大きくなるか

入力欄のサンプルは、ネットショップの注文を表す1行のAPIレスポンスで、335バイト、キーは18個、階層は4段です。UTF-8では日本語は1文字3バイト、英数字は1バイトです。整形すると27行になり、サイズは次のように変わります。

出力サイズ
圧縮(1行)335バイト
タブ451バイト
スペース2つ523バイト
スペース4つ667バイト

タブは1階層につき1バイトなので、整形したJSONの中ではいちばん小さくなります。人が読んだり編集したりするファイルなら読みやすさを優先し、大量に送ったり保存したりするJSONは圧縮するのが一般的です。

制限とヒント

JSONはお使いの端末から出ません

整形と構文チェックはブラウザの中で行われます。JSONにはAPIキーやトークン、顧客情報が入っていることも多いですが、どれもアップロードも記録もされません。保存もされないため、ページを再読み込みすると消えます。

よくある質問

JSONはサーバーに送られますか?

いいえ。整形と構文チェックはブラウザのJavaScriptで行うので、社外秘のデータにも使えます。ページを一度開けば、オフラインでも動きます。

JavaScriptでは動くのに、JSONとしてはエラーになるのはなぜですか?

JavaScriptのオブジェクトリテラルでは、引用符のないキー名、シングルクォート、末尾のカンマ、コメント、undefined や関数が使えますが、JSONでは使えません。JSONはどの言語でも同じように読めるよう、より厳しく決められたデータ形式です。

「JSONが途中で終わっています」とはどういう意味ですか?

何かが開いたままで文字列が終わったという意味です。多くは } や ] の閉じ忘れ、または閉じる引用符のない文字列です。コピーしたときに末尾が切れてしまった場合にも表示されます。

見た目は正しいのにエラーになります。

全角の記号が混ざっている可能性が高いです。日本語入力のまま打ったコロン「:」、カンマ「,」、引用符、全角スペースは半角と見分けにくいので、エラーの列番号と ^ の位置の文字を半角で打ち直してください。

キーを並べ替えるとデータが変わりますか?

いいえ。RFC 8259 はオブジェクトを「順序のない名前と値の組の集まり」と定めているので、キーの順番に意味はありません。配列は順序に意味があるため、要素は並べ替えません。

JSONを1行にするには?

出力で圧縮(1行)を選ぶと、改行とインデントを取り除いた1行のJSONになります。文字列の中の空白や改行(\n)はデータの一部なので、そのまま残ります。

この計算ツールをあなたのサイトに埋め込む

ウェブサイトやブログで無料でお使いいただけます。表示したい場所に次のコードを貼り付けてください。

最終更新日:2026年10月16日

メニュー

カテゴリー

お金・ローンの計算ツール13種類の計算ツールビジネス・買い物の計算ツール5種類の計算ツール健康・ダイエットの計算ツール6種類の計算ツール数学・学習の計算ツール14種類の計算ツール日付・時間の計算ツール10種類の計算ツール年中行事までのカウントダウン7種類の計算ツール暮らしに役立つツール15種類の計算ツールPDF・画像の変換ツール12種類の計算ツールマイクテスト・カメラテスト・録音ツール6種類の計算ツールエンジニア向け開発ツール9種類の計算ツール

CalcWorthy

運営者情報お問い合わせプライバシーポリシー利用規約

言語

言語
日本語JapaneseEnglishEnglishالعربيةArabicবাংলাBanglaDeutschGermanEspañolSpanishفارسیPersianFrançaisFrenchעבריתHebrewहिन्दीHindiBahasa IndonesiaIndonesianItalianoItalian한국어KoreanBahasa MelayuMalayNederlandsDutchPolskiPolishPortuguêsPortugueseРусскийRussianไทยThaiTürkçeTurkishУкраїнськаUkrainianاردوUrduTiếng ViệtVietnamese简体中文Simplified Chinese