JSON整形・検証ツール

JSON整形・検証ツール

不正な構文やクォート漏れのあるJSONをブラウザ上で即座に整形・検証・修復します。サーバー送信なしの完全ローカル処理で、構文チェック、圧縮、ツリー構造の可視化に対応します。

プリセット選択:
入力データ修復済みAST
{
  "timestamp": 1729482000,
  "service": "auth-proxy",
  "is_authenticated": true,
  "mfa_verified": false,
  "session_metadata": null,
  "scopes": [
    "read:profile",
    "write:orders"
  ],
  "retry_count": 0
}

ASTノード型分布

10 総ノード数
容量クォータゲージ215 B容量上限: 256 KB
ネスト深度分布(L1〜L6+)L11L27L32L4L56+最大深度: 3 階層
ASTノード型分布
10
オブジェクト: 1
配列: 1
文字列: 3
数値: 2
真偽値: 2
null値: 1
主要メトリクス
修復済みAST
UTF-8 BOM除去 • 改行コードLF正規化済み
容量効率・圧縮率
-2.7%
221 B → 215 B
出力構造・AST
10 総ノード数 • D:3
1 オブジェクト • 1 配列
技術リファレンス・アーキテクチャガイド

JSON整形・構文検証ガイド — 技術リファレンス

乱れたJSONの整形・美化(Beautify)・構文検証および自動修復をブラウザ上で瞬時に実行。構文エラーの解消、クォート漏れキーの修正、ミニファイ(軽量化)、ツリーノード解析をサーバー通信ゼロ(完全クライアントサイド)の最高セキュリティで提供します。

JSON整形・構文検証ガイド — 技術リファレンス — クライアントサイド完全ローカル実行アーキテクチャ図
JSON整形・構文検証ガイド — 技術リファレンス — クライアントサイド完全ローカル実行アーキテクチャ図

主要パラメータと設定項目

インデント幅(階層スペース数)integer | string

ネストしたブロック階層ごとのインデント幅を制御します。業界標準として、2スペース(GoogleおよびAirbnbのコーディングスタイル規約)、4スペース(PEP 8やJavaの標準フォーマット)、または等幅フォントでのコンパクトな配置に適したタブ文字(Tab)を選択できます。

初期値: 2
クォート形式の許容度(引用符ルール)string

RFC 8259 Section 7に基づく文字列引用符の検証ポリシーを規定します。厳格モード(strict)では二重引用符(ダブルクォート ")を必須とし、寛容モード(tolerant)では単一引用符(シングルクォート ')やクォートのないオブジェクト識別子キーを許容して標準形式へ自動正規化します。

初期値: strict
末尾カンマ(トレイリングコンマ)の処理方針string

オブジェクトや配列の末尾にある区切り文字(カンマ)の処理方法を決定します。RFC 8259規格では末尾カンマを厳格に禁止していますが、ECMAScript 5.1やJSON5仕様ではGit等のバージョン管理における差分(diff)をクリーンに保つために許容されています。本設定で除去(strip)または保持を制御します。

初期値: strip
オブジェクトキーのソート順序boolean | string

オブジェクトのプロパティ(キー)の並び順を指定します。辞書順ソート(A-Z昇順)を適用することで、暗号署名ハッシュ生成(RFC 8785 JSON正規化方式 / JCS)やGit差分比較において決定論的なシリアライズ出力を保証できます。

初期値: preserve
64ビット整数・BigInt精度保護ガードboolean

IEEE 754倍精度浮動小数点数の安全な整数限界(Number.MAX_SAFE_INTEGER: 9,007,199,254,740,991 / 2^53 - 1)に対する境界チェックを実施します。この上限を超える数値トークンを自動検出し、暗黙の丸め誤差や下位桁の桁落ちによるデータ破損を防止します。

初期値: true
Unicodeエスケープシーケンス処理string

非ASCII文字の表現形式を設定します。ASCII範囲外(U+0080以上)のコードポイント(日本語マルチバイト文字や絵文字など)を生のUTF-8リテラルとしてそのまま保持するか、6文字の\uXXXXエスケープシーケンスへ変換するかを制御します。

初期値: utf-8

現場のベストプラクティス・実践Tips

64ビットIDにおけるIEEE 754浮動小数点の桁落ち・丸め誤差

標準のJSON.parse()は数値を53ビット仮数部を持つIEEE 754倍精度浮動小数点数(64ビットFloat)としてデシリアライズします。このため、9,007,199,254,740,991(2^53 - 1)を超える整数(TwitterのツイートID、DiscordのSnowflake ID、ナノ秒単位のUNIXタイムスタンプなど)は、最下位桁が暗黙のうちに丸められ値が書き換わってしまいます。巨大な識別子をJSONペイロードで扱う際は、常にダブルクォートで囲んだ文字列型(string)として保持・伝送してください。

未ソートのオブジェクトキーによる暗号ハッシュ検証の失敗

RFC 8259規格では、JSONオブジェクトのキーの順序はセマンティクス上「順不同(unordered)」と明記されています。キーを事前にソートせずにJSON文字列に対してダイレクトにSHA-256ハッシュやHMAC署名を計算すると、内部データ構造が同一であってもキーの挿入順序が異なるだけで全く別のチェックサムが算出されてしまいます。署名生成やハッシュ照合の前には、必ずRFC 8785(JSON Canonicalization Scheme / JCS)に準拠した決定論的キーソートを実施してください。

不可視のBOM(バイト順マーク)とゼロ幅スペース(ZWSP)の罠

UTF-8 BOM付きで保存されたファイルには、先頭(インデックス0)に不可視のバイトシーケンス(\uFEFF)が含まれます。標準のJSONパーサーはこの制御文字を認識できず、画面上は完璧なJSONに見えても「Unexpected token at position 0」という原因不明のエラーを出力して停止します。本番環境向けのフォーマッターでは、プリスキャン段階で先頭のBOMや不可視のゼロ幅スペース(\u200B)を確実に除去するサニタイズ処理が不可欠です。

循環参照(Circular Structure)を含むオブジェクトグラフの例外回避

自己参照ポインタや相互参照を含むデータ構造に対してJSON.stringify()を呼び出すと、捕捉困難な「TypeError: Converting circular structure to JSON」例外がスローされ処理が強制終了します。複雑なアプリケーション状態やDOMツリーをJSON化する際は、WeakSetを用いた循環検知リプレーサーアルゴリズムを導入し、再帰ノードを「[Circular Reference]」などのプレースホルダー文字列へ安全に置換してください。

よくある落とし穴とトラブルシューティング

⚠️SyntaxError: Unexpected token ' in JSON at position X(シングルクォート構文エラー)

RFC 8259 Section 7の仕様により、文字列リテラルおよびオブジェクトのキーは必ず二重引用符(ダブルクォート ")で囲む必要があります。単一引用符(シングルクォート ')はJSON規格上不正な構文です。上部の「自動修復(Repair)」ボタンをクリックすると、シングルクォートで囲まれた文字列やクォートのないキーを検出し、RFC準拠の正規なダブルクォート構文へ自動一括変換します。

⚠️SyntaxError: Unexpected token , in JSON at position X(末尾カンマ構文エラー)

閉じ角括弧 ] や閉じ波括弧 } の直前に置かれた末尾カンマ(トレイリングコンマ)は、厳格なJSON仕様に違反するため標準パーサーが即座にエラーを吐いて停止します。「JSON5 / 寛容(Permissive)モード」に切り替えるか、自動修復機能を利用して閉じ括弧前の不要なカンマを正規表現の先読み置換で一括除去してください。

⚠️64-Bit Integer Snowflake IDs Mutating or Rounding Down(64ビット整数の丸め誤差)

JavaScriptの標準数値型(Number)は、精度損失なしで2^53 - 1を超える整数を表現できません。例えば「9007199254740993」のような値は、パーサー内部で自動的に「9007199254740992」などに丸められてしまいます。これを回避するには、該当数値をダブルクォートで囲んで文字列化("9007199254740993")するか、本ツールの「BigInt精度保護ガード」を有効化して巨大数値を安全な文字列トークンとしてパースしてください。

⚠️SyntaxError: Unexpected token / in JSON at position X(コメント記述エラー)

標準のJSON仕様では、単一行コメント(//)および複数行コメント(/* */)の記述が一切認められていません。tsconfig.jsonやVSCodeの設定ファイルのようにコメントを含むJSONをフォーマットする場合は、パーサー設定を「JSON5 / 寛容(Permissive)モード」に変更してください。有効なデータ構造を完全に維持したまま、コメントトークンのみを安全に除去または解釈できます。

よくある質問 (FAQ)

機密漏洩やデータプライバシーのリスクなしにオンラインでJSONを整形・検証するにはどうすればよいですか?▼

ブラウザのJavaScriptエンジン(V8等)のローカルメモリ上でのみ完全クライアントサイド処理を行うWebツールを使用してください。外部サーバーへの通信(HTTPリクエスト)、API送信、データの一時保存が一切発生しないため、社内APIキーやデータベース接続文字列、企業の顧客個人情報、社内認証トークンなどが外部ネットワークへ流出するリスクをゼロに抑えられます。

標準JSON(RFC 8259)とJSON5仕様の主な違いは何ですか?▼

JSON(RFC 8259)は厳格なデータ交換規格であり、キーのダブルクォート囲みを義務付け、コメントや末尾カンマを禁止しています。一方のJSON5は、人間による読み書きやすさを追求したECMAScript 5.1互換のスーパーセット規格です。単一行/複数行コメント(//、/* */)、末尾カンマ、シングルクォート文字列、クォートなしの識別子キー、16進数表記(0xFF)、先頭の明示的プラス記号(+42)などをフルサポートしています。

なぜJSON.parse()はシングルクォートやクォートなしのキーでパースエラーになるのですか?▼

RFC 8259 Section 7において、文字列はUnicode二重引用符(U+0022)で囲まれたもののみと厳密に定義されており、単一引用符(U+0027)は字句解析上不正なトークンとして扱われるためです。また、クォートなしのキーはJavaScriptのオブジェクトリテラルとしては正当ですが、JSON文法上は許容されません。RFC規格に完全準拠させるには、字句解析器(Lexer)によって裸の識別子トークンをダブルクォートで安全にラップする必要があります。

JSONの循環参照エラー(Converting circular structure to JSON)を解消するには?▼

循環参照エラーは、オブジェクトが直接または祖先プロパティを経由して自身を参照している場合に発生し、無限再帰シリアライズに陥ることで例外がスローされます。解決するには、JSON.stringify()の第2引数にカスタムのreplacer関数を渡し、WeakSetを用いて訪問済みのオブジェクト参照をトラッキングします。再出現したノードを「[Circular]」などのプレースホルダー文字列に置換することで、例外を起こさず安全に文字列化できます。

JSONで64ビットBigIntや巨大なマイクロ秒タイムスタンプを精度損失なく扱うには?▼

ネイティブのJSON.parse()はすべての数値をIEEE 754倍精度浮動小数点数(最大安全整数: 9,007,199,254,740,991)としてキャストするため、これを超える整数は不可逆的に切り捨てられます。TwitterのSnowflake IDやマイクロ秒単位のエポックタイムスタンプなどを正確に保持するには、パース前の生JSONテキストに対して正規表現プリパーサーを実行し、15桁を超える長大な数値リテラルを事前にダブルクォートで囲んで文字列型に変換する手法が最も確実です。

関連開発者ツール

全ツール一覧 →
Base64変換・デコード開発者ツール

Base64文字列やバイナリファイルをブラウザ上で瞬時にエンコード・デコード。URLセーフなbase64url、UTF-8、MIME改行、Data URL、破損データのリアルタイム自動修復に対応。

ツールを開く→
JSON TypeScript 型定義変換ツール開発者ツール

JSONデータを解析し、洗練されたTypeScriptのinterfaceやtypeエイリアスへ変換。ネストされたオブジェクトや配列の型推論に対応。

ツールを開く→
JSONからZodスキーマ生成ツール(TypeScriptランタイム検証)開発者ツール

生のJSONデータからTypeScript Zodスキーマ、型定義、ネストされたバリデーションルールをブラウザ上で自動推論・生成します。

ツールを開く→
JSON TypeBox スキーマ生成ツール (高速 JSON Schema 型プロバイダー)開発者ツール

JSON構造を高パフォーマンスなTypeBoxのType.Object定義に変換。Fastify、Ajv、TypeScriptのランタイム型検証に即座に利用可能です。

ツールを開く→
JSONからValibotスキーマ生成(モジュラーTypeScript検証)開発者ツール

JSONデータをv.object、v.string、v.numberなどの軽量かつツリーシェイカブルなValibotスキーマ定義に高速変換します。

ツールを開く→
JSONからPython Pydantic v2・Dataclass自動生成ツール開発者ツール

JSONデータからPythonのPydantic v2 BaseModel、TypedDict、@dataclassクラスコードを自動推導。型アノテーションやフィールド別名エイリアスを完備します。

ツールを開く→