> 整形 | 検証 | 圧縮 <
// JSONデータを即座に整形、検証、圧縮
プリティプリント
カスタマイズ可能なインデントでJSONを整形。2スペース、4スペース、タブから選択。
コンパクト出力
すべての空白を削除してJSONを圧縮。本番環境やAPIのためにサイズを削減。
構文チェック
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のオブジェクトリテラルははるかに自由です。