最初はオンラインの整形ツールばかり使っていましたが、社内APIのレスポンスサンプルを何度も貼り付けるうちに「これは外部サービスに投げていい情報だったか」と不安になったのがきっかけで、ローカルで完結するエディタ拡張機能とCLIツールに乗り換えました。この記事はその移行の記録です。

ツール選定の考え方

目的別にオンライン整形ツール・エディタ拡張機能・CLIツールを選ぶフローチャート

図1: 「その場確認」「継続編集」「自動化」の3つの目的でツールを使い分ける

JSONを扱う外部ツールは大きく3種類に分けられます。それぞれ得意な場面が異なるため、目的に応じて使い分けるのが最も効率的です。

オンライン整形・検証
インストール不要でその場確認できる。ただし貼り付けたデータが外部サーバーに送信される点に注意。
エディタ拡張機能
日常的な編集・保存時の自動整形に最適。ローカルで完結し、機密データも安心して扱える。
CLI・自動化ツール
jqやajv-cliなど。スクリプトやCIパイプラインへの組み込みに向く。再現性が高い。

オンライン整形・検証ツール

JSONLint・JSON Formatterなどのオンラインツールは、テキストエリアにJSONを貼り付けるだけで構文エラーの検出とインデント整形を同時に行ってくれます。導入の手間がゼロで、他人と結果を共有しやすいのが利点です。

ツール特徴向いている場面
JSONLint構文検証に特化。エラー行を明示してくれる「どこが壊れているか」だけ知りたい時
JSON Formatter整形・圧縮(minify)・ツリー表示に対応ネストの深いJSONを俯瞰したい時
ブラウザ標準のJSON表示Chrome/FirefoxはAPIレスポンスのJSONを自動で折りたたみ表示開発者ツールでAPI応答を確認する時

⚠️ 機密情報・個人情報を含むJSONは貼り付けない

オンラインツールの多くは入力内容を外部サーバーに送信します。本番のAPIキー・トークン・個人情報を含むレスポンスをそのまま貼り付けるのは避け、必要ならダミー値に置き換えてから利用してください。社内情報を扱う場合は、次節以降で紹介するローカル完結のツールを優先することをおすすめします。

VS Code の JSON 言語機能と拡張機能

VS Codeは追加の拡張機能を入れなくても、JSONに対して構文チェック・折りたたみ・簡易フォーマット(Shift+Alt+F)を標準で提供しています。さらに$schemaプロパティを指定すると、JSON Schemaに基づいた入力補完とエラー検出が有効になります。

JSON — $schemaによる補完の有効化
{
  "$schema": "./schema/config.schema.json",
  "name": "sample-app",
  "port": 8080
}

$schemaに指定したファイルのルールに沿って、キー名の補完・型チェック・必須項目の警告が入力中にリアルタイムで表示されます。package.jsonなどの著名な設定ファイルは、VS Codeが標準で公開スキーマを自動関連付けしてくれるため、追加設定なしで補完が効きます。

💡 settings.jsonでの手動関連付けも可能

$schemaを書き込めない外部ファイルには、ワークスペースの.vscode/settings.jsonjson.schemas設定を使い、ファイルパターンとスキーマファイルを紐づけることができます(詳細はPART 04で扱います)。

Prettier による保存時自動整形

インデント幅・改行位置などの整形スタイルをチームで統一するには、Prettier拡張機能を導入し、保存時に自動フォーマットさせるのが定番です。

JSON — .vscode/settings.json(保存時自動整形の設定例)
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.tabSize": 2
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

この設定を.vscode/settings.jsonとしてリポジトリに含めておけば、チーム全員が同じフォーマットルールで保存できるようになり、「インデントが2か4か」といった無意味な差分レビューを防げます。

jq — コマンドラインでのJSON処理

jqは、コマンドラインからJSONを整形・抽出・加工できる軽量ツールです。ログの中からJSON部分だけを取り出して確認したり、シェルスクリプトの中でAPIレスポンスから特定の値だけを抜き出したりする用途に向いています。

Shell — jq のインストールと基本操作
# macOS(Homebrew)
brew install jq

# Ubuntu / Debian
sudo apt-get install jq

# Windows(winget)
winget install jqlang.jq

# 整形(インデント付け)
cat response.json | jq '.'

# 特定のキーだけ抽出
cat response.json | jq '.data.items[].name'

# 条件でフィルタ
cat response.json | jq '.data.items[] | select(.active == true)'

# 構文チェックのみ(出力なし)
cat response.json | jq empty && echo "valid JSON"

jq empty は構文チェック専用コマンドとして便利

整形結果を表示せず、構文が正しいかどうかだけを終了コードで判定します。シェルスクリプトやCIの中で「JSONとして壊れていないか」を機械的にチェックする際に使えます(PART 05のCI組み込みで再登場します)。

まとめ — ツール早見表

目的おすすめツールポイント
その場で構文確認したいJSONLint / ブラウザ開発者ツール機密データは避ける
日常的に編集・保存するVS Code + Prettier保存時自動整形でスタイル統一
補完・型チェックを効かせたいVS Code + $schemaPART 04のJSON Schemaと連携
スクリプト・CIで処理したいjq / ajv-cli再現性が高く自動化に向く

次の章では…

PART 03 では、ここまでで触れた「末尾カンマ」「クォート」などのルールも含め、JSONの基本文法とデータ型を実務者向けに整理します。

→ PART 03 — 基本文法とデータ型へ