> 整形 | 検証 | 圧縮 <

// 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: インデントは2スペース、4スペース、タブのどれが良いですか?

A: チームの規約次第で、一貫していれば問題ありません。2スペースはWeb開発で一般的で深いネストでも幅を節約でき、4スペースはPythonでよく使われ、タブは表示幅を各自が調整できます。転送用にはインデントなしのミニファイJSONが最小です。

Q: JSONが無効と判定されるのはなぜですか?

A: よくある原因は、ダブルクォートではなくシングルクォート、クォートなしのキー、最後の要素の後のカンマ、コメント、undefined、NaN、数値の先頭ゼロです。エラーメッセージには最初に失敗した行と列が示されることが多いです。

Q: JSON5やJSONCとは何で、JSONとどう関係しますか?

A: JSON5とJSONCは、コメントや末尾カンマなどを許可する拡張です(tsconfig.jsonやVS Codeの設定など)。有効なJSONではないため、フォーマッターは厳密なJSONを想定します。事前にコメントと末尾カンマを削除してください。

// 他の言語