Copy & Paste Engineer

【bash】簡単にJSONファイルを自動整形する方法

【bash】簡単にJSONファイルを自動整形する方法

整形されていないJSONは読みにくく、解析が困難になることがあります。この記事では、Bashコマンドを使って簡単にJSONファイルを整形する方法を解説します。


JSON整形に必要なツール:jq

jqは、JSONデータを処理するための強力なコマンドラインツールです。以下の機能を備えています:


jqのインストール

まず、jqをインストールしましょう。環境ごとにインストール方法が異なります。

Debian/Ubuntu

sudo apt update
sudo apt install jq

macOS (Homebrewを使用)

brew install jq

その他の環境

公式ドキュメントで詳細な手順を確認できます。


JSONファイルを整形する基本コマンド

jqを使えば、1行のコマンドでJSONファイルを整形できます。

基本コマンド構文

jq '.' input.json > output.json

コマンドの説明


実行例

整形前のJSON

以下のような整形されていないexample.jsonファイルを例にします:

{"name":"Alice","age":25,"city":"Tokyo"}

コマンドの実行

次のコマンドを実行します:

jq '.' example.json > formatted_example.json

整形後のJSON

整形後のformatted_example.jsonは以下のようになります:

{
  "name": "Alice",
  "age": 25,
  "city": "Tokyo"
}

このように、可読性が大幅に向上します。


ファイルを直接上書きしたい場合

元のファイルをそのまま上書きしたい場合は、以下のコマンドを使用します:

jq '.' input.json > temp.json && mv temp.json input.json

この方法では、一時ファイルを使用して安全に上書きします。


jqの便利な使い方

jqは整形だけでなく、以下のような操作も可能です:

特定のキーの抽出

jq '.name' input.json

このコマンドは、JSON内のnameキーの値を抽出します。

インデント幅の調整

デフォルトのインデント幅は2ですが、カスタマイズも可能です。

jq --indent 4 '.' input.json

エラー対策

無効なJSONを処理しようとするとエラーになる

jqは有効なJSONのみを処理できます。エラーが出る場合は、以下のようにJSONの形式を確認してください:

  1. JSONファイルが正しい形式であるか確認する。
  2. 必要に応じて、オンラインのJSONバリデーターで検証する。

まとめ

Bashとjqを使うことで、JSONファイルを簡単に整形できるようになります。

メリット

シンプルな整形だけでなく、データの抽出や加工も可能なjqをぜひ活用してください。JSONの取り扱いがさらに便利になります!


参考リンク