> 整形 | 検証 | 圧縮 <

// JSONデータを即座に整形、検証、圧縮

[FORMAT]

プリティプリント

カスタマイズ可能なインデントでJSONを整形。2スペース、4スペース、タブから選択。

[MINIFY]

コンパクト出力

すべての空白を削除してJSONを圧縮。本番環境やAPIのためにサイズを削減。

[VALIDATE]

構文チェック

JSON構文を即座に検証。詳細なエラーメッセージを表示。

// JSONフォーマットについて

JSONとは:

JSON(JavaScript Object Notation)はRFC 8259で定義された軽量なデータ交換フォーマットです。人間が読み書きしやすく、マシンが解析・生成しやすい形式です。

例:

{"name":"John","age":30} → {\n "name": "John",\n "age": 30\n}

一般的な使用例:

  • >APIレスポンスのデバッグと検査
  • >設定ファイルの整形
  • >処理前のデータ検証
  • >圧縮によるサイズ削減
  • >一貫した出力のためのキーソート

>> よくある質問

Q: JSONフォーマッターとは?

A: JSONフォーマッター(JSON整形ツール)は、生のまたは圧縮されたJSONデータを適切なインデントと改行で再整形するツールです。

Q: 整形と圧縮の違いは?

A: 整形はインデントと改行を追加して読みやすくします。圧縮は不要な空白をすべて削除してファイルサイズを削減します。

Q: JSON検証はどのように動作しますか?

A: JSON検証は入力がJSON仕様(RFC 8259)に準拠しているかを確認します。括弧、引用符、データ型の正確性を検証します。

Q: キーのソートは何のためですか?

A: アルファベット順のキーソートは、JSON構造内のすべてのオブジェクトキーを並べ替え、比較と一貫性を容易にします。

Q: JSONとYAMLの比較は?

A: JSONは波括弧と厳密な構文を使用し、YAMLはインデントベースです。JSONはAPIでより広くサポートされています。YAMLはより読みやすいですが、解析は複雑です。

// よくあるJSONの誤り

JavaScriptでは許されても、厳密なJSONでは無効になる書き方です。

無効有効
{'a': 1}{"a": 1}
{"a": 1,}{"a": 1}
{a: 1}{"a": 1}
{"a": undefined}{"a": null}
{"a": 01}{"a": 1}

// コードでJSONを整形

JavaScript  JSON.stringify(obj, null, 2)
Python      json.dumps(obj, indent=2, ensure_ascii=False)
PHP         json_encode($obj, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
Go          json.MarshalIndent(v, "", "  ")
Java        new ObjectMapper().writerWithDefaultPrettyPrinter()
CLI         jq . file.json
CLI         python3 -m json.tool file.json

>> その他の質問

Q: 整形するとデータは変わりますか?

A: いいえ、変わるのは空白とインデントだけです。キーの順序と値は保持されます。ただしキーのソートを明示的に有効にした場合は除きます。

Q: 大きな数値は精度が落ちますか?

A: JavaScriptは数値を64ビット浮動小数点として読み込むため、9,007,199,254,740,991(2^53−1)を超える整数は精度が失われることがあります。IDがこれほど大きい場合は文字列として保存してください。

Q: JSONとJavaScriptオブジェクトの違いは?

A: JSONは厳密なテキスト形式で、キーと文字列はダブルクォートが必須、関数・undefined・コメント・末尾カンマは使えません。JavaScriptのオブジェクトリテラルははるかに自由です。

// 他の言語