JSON 整形とインデント: タブ vs スペースの実践指針

2024-06-14

整形は見た目だけの問題ではありません。インデントを揃えるとレビュー効率が上がり、マージ時のノイズも減ります。選び方と圧縮の使い分けを確認しましょう。

JSON 仕様における空白文字

スペースや改行はパーサーにとって意味を持たず、スタイルは人間とチームの読みやすさの問題です。

タブ vs スペース

エディタ間の一貫性と差分の見やすさのため、通常はスペース推奨です。タブも合法ですが公開 JSON 例ではほとんど使われません。

2 スペース vs 4 スペース

フロントエンドや Node では 2 スペースが主流、Java/Python 系では 4 スペースも見られます。リポジトリ内で 1 つに統一しましょう。

{
  "user": {
    "name": "Alice",
    "roles": ["admin", "editor"]
  }
}

整形(Pretty-print)する場面

デバッグ、ドキュメント、手編集時に有効です。レビュー前に整形すれば差分が本質的な変更だけになります。

ミニファイする場面

本番転送や保存サイズ削減向けです。可読版を別に保持し、ミニファイ済み JSON を手作業で編集しないようにします。

チーム運用のヒント

.editorconfig で JSON のインデントを固定し、必要なら CI のパースチェックを追加。公開サンプルは 2 スペースに統一するとよいです。