JSON ツールボックス

整形 / 圧縮 / エスケープ / 逆エスケープ — すべてブラウザ内で動作します。

結果

使い方

  1. 左側に JSON または任意のテキストを貼り付け、上の操作から整形・圧縮・エスケープ・逆エスケープを選びます。
  2. 「インデント」は整形にだけ影響します(スペース 2 つまたは 4 つ)。整形結果は展開された状態で表示され、各行の横の矢印でオブジェクトや配列を折りたたんだり展開したりできます。
  3. 自動検証はエラーを見つけると行と列を示します。結果をコピーまたはダウンロードでき、「クリア」の横の ⇄ ボタンで結果を入力欄に戻せます。折りたたんでいる部分があっても、これらの操作は常に結果全体を使います。

例

入力

{"user":{"id":42,"name":"佐藤 花子","roles":["admin","editor"],"active":true},"score":12345678901234567890}

整形後

{
  "user": {
    "id": 42,
    "name": "佐藤 花子",
    "roles": [
      "admin",
      "editor"
    ],
    "active": true
  },
  "score": 12345678901234567890
}

既定のルールのみの例です。スペース 2 つのインデントで、キーは書いた順に並びます。20 桁の score は 1 桁ずつそのまま出力されます。JSON.parse を経由すると 12345678901234567000 になってしまいます。

ルール・制限・既知の問題

  • 厳密な JSON(RFC 8259)に従います。コメント、末尾のカンマ、単一引用符、引用符のないキー、NaN、Infinity は拒否し、パーサーの文言ではなく修正方法を示します。
  • 整形と圧縮は空白だけを変えます。文字列のエスケープ、数値リテラル、引用符付きキーは入力したとおりに出力されます。"\u00e9" は "\u00e9" のまま、12345678901234567890 は正確なまま、1e400 は null にならず、-0 は -0 のままです。
  • 重複キーは JSON.parse と同様に最後の値が残り、警告でキー名を示します。以前の値は破棄されます。
  • 「エスケープ」は入力全体を 1 つの JSON 文字列リテラルにエンコードします(引用符、バックスラッシュ、制御文字をエスケープし、それ以外は変更しません)。「逆エスケープ」は引用符で囲まれた完全な文字列(厳密に検証)または裸のエスケープシーケンスを受け付けます。
  • 行と列は Unicode のコードポイントで数えるため、絵文字は 1 列です。空白とみなすのはスペース、タブ、改行、復帰だけで、U+3000 や U+00A0 はそのコードポイントとともに報告します。
  • 制限: 100 万文字、ネスト 512 階層です。いずれかを超えるとエラーになり、結果が切り捨てられることはありません。ファイルの読み込みはローカルのファイルだけを読み、何もアップロードしません。
  • JSON から YAML / XML / CSV への変換、JSON Schema、JSONPath、ツリーエディター、URL パラメータ、履歴はありません。すべてブラウザ内で動作し、何もアップロード・保存されません。

JSON を扱ったあとによく使われるツールです。