utilduck
Home · 開発 · JSONフォーマッター

JSONフォーマッター

JSONを貼り付けて、整形・最小化・検証をワンクリックで。

JSONフォーマットとは

JSON(JavaScript Object Notation)はWebで最も一般的なデータ交換形式です。APIからのJSONはしばしば最小化(スペースなし1行)されており、読みにくいです。整形すると一定のインデントが付き構造を把握しやすくなります。

最小化はすべての不要な空白を除いてファイルサイズを削減します。検証はブラケットの一致・引用符付きキー・カンマの位置・値の型が正しいかチェックします。

JSONを整形・最小化する方法

JSONを整形するには、テキストをデータ構造にパースし、一貫した改行とインデント(通常2スペース)で再度書き出します。最小化は同じ構造を空白なしで再度書き出します。例: {"a":1,"b":2}は2スペースインデントの4行に整形され、最小化すると再び{"a":1,"b":2}に戻ります。

JSONを整形・最小化・検証する手順

  1. 元のJSONテキストを入力欄に貼り付けます。
  2. 整形を選ぶと、テキストをオブジェクト・配列構造にパースした後、2スペースのインデントとキー・配列要素ごとの改行を入れて出力します。
  3. 最小化を選ぶと、同じ構造をパースしつつ、改行や余分な空白なしで有効な構文に必要な文字だけを出力します。
  4. 検証を選ぶと、再フォーマットせずにテキストのパースだけを試みます。パースに成功すれば構文的に有効なJSONです。
  5. どの段階でもパースに失敗した場合は、予期しないトークン・カンマの欠落・括弧の不一致など正確な原因が表示されるため、エラー箇所を見つけて修正できます。

整形 vs 最小化

整形: parse(テキスト) -> stringify(値, インデント=2) | 最小化: parse(テキスト) -> stringify(値, インデント=0)
  • parse = JSONテキストをオブジェクト・配列・文字列・数値・真偽値・nullなどメモリ上の構造に変換
  • stringify = その構造をインデントの有無に応じて再度JSONテキストに変換

整形・最小化の結果例

入力整形後(2スペースインデント)最小化
{"a":1,"b":2}{⏎ "a": 1,⏎ "b": 2⏎}{"a":1,"b":2}
[1,2,3][⏎ 1,⏎ 2,⏎ 3⏎][1,2,3]
{"x":{"y":true}}{⏎ "x": {⏎ "y": true⏎ }⏎}{"x":{"y":true}}

よくある質問

正しく見えるのになぜ無効なJSONだと言われるのですか?

末尾の余分なカンマ、シングルクォート、クォートなしのキーなど、目に見えにくいミスがよくあります。これらはJavaScriptのオブジェクトリテラルでは有効でも、厳密なJSON構文では許されません。この検証ツールは厳密なJSON文法に従うため、こうした部分で失敗します。

JSONとJavaScriptオブジェクトはどう違いますか?

JSONは厳密な文法のテキストデータ形式です。キーは二重引用符で囲んだ文字列でなければならず、末尾のカンマは禁止され、値の型も文字列・数値・真偽値・null・オブジェクト・配列に固定されています。JavaScriptのオブジェクトリテラルはクォートなしのキー・末尾のカンマ・関数・コメントまで許す緩い構文で、いずれも有効なJSONではありません。

最小化するとJSONが表すデータは変わりますか?

いいえ。最小化は文字列値の一部でない空白だけを取り除くため、パースされたデータ構造とその意味は前後で同じです。変わるのは転送・保存に必要なバイト数だけです。

深くネストしたJSONもこのツールで整形できますか?

はい。整形はオブジェクト・配列の深さに関係なく再帰的に動作し、階層ごとにインデントを2スペースずつ追加するため、どれだけ深くても構造が読みやすく保たれます。

このツールはRFC 8259で定義された標準JSONを検証・再整形します。JSON5やJSONC(コメント付き)などの拡張方言には対応しておらず、非常に大きな入力(数メガバイト)はブラウザでの処理が遅くなることがあります。

Sources: RFC 8259 - JSON(JavaScript Object Notation)データ交換形式, ECMA-404 - JSONデータ交換構文標準

プライバシーと安全性

  • ブラウザ内で計算 — 入力した値はお使いの端末内だけで計算され、utilduckのサーバーへ送信されません。
  • 暗号化された通信 — すべてのページはHTTPSで配信され、通信経路で内容を読み取られません。
  • 第三者へ渡しません — 入力内容は解析・広告サービスへ渡されません。
  • 保存しません — 計算結果をサーバーに保存せず、アカウント登録も不要です。

最終更新: 2026-08-24