【bash】簡単にJSONファイルを自動整形する方法
整形されていないJSONは読みにくく、解析が困難になることがあります。この記事では、Bashコマンドを使って簡単にJSONファイルを整形する方法を解説します。
JSON整形に必要なツール:jq
jqは、JSONデータを処理するための強力なコマンドラインツールです。以下の機能を備えています:
- JSONデータの整形
- 特定のデータ抽出
- データの加工や変換
jqのインストール
まず、jqをインストールしましょう。環境ごとにインストール方法が異なります。
Debian/Ubuntu
| |
macOS (Homebrewを使用)
| |
その他の環境
公式ドキュメントで詳細な手順を確認できます。
JSONファイルを整形する基本コマンド
jqを使えば、1行のコマンドでJSONファイルを整形できます。
基本コマンド構文
| |
コマンドの説明
jq '.'- JSON全体を指定して整形します。この場合、データの加工や変更は行われません。
input.json- 整形したいJSONファイルを指定します。
>- 整形結果を別のファイルにリダイレクトします。
output.json- 整形後のファイル名を指定します。
実行例
整形前のJSON
以下のような整形されていないexample.jsonファイルを例にします:
| |
コマンドの実行
次のコマンドを実行します:
| |
整形後のJSON
整形後のformatted_example.jsonは以下のようになります:
| |
このように、可読性が大幅に向上します。
ファイルを直接上書きしたい場合
元のファイルをそのまま上書きしたい場合は、以下のコマンドを使用します:
| |
この方法では、一時ファイルを使用して安全に上書きします。
jqの便利な使い方
jqは整形だけでなく、以下のような操作も可能です:
特定のキーの抽出
| |
このコマンドは、JSON内のnameキーの値を抽出します。
インデント幅の調整
デフォルトのインデント幅は2ですが、カスタマイズも可能です。
| |
エラー対策
無効なJSONを処理しようとするとエラーになる
jqは有効なJSONのみを処理できます。エラーが出る場合は、以下のようにJSONの形式を確認してください:
- JSONファイルが正しい形式であるか確認する。
- 必要に応じて、オンラインのJSONバリデーターで検証する。
まとめ
Bashとjqを使うことで、JSONファイルを簡単に整形できるようになります。
メリット
- 可読性の向上
- コマンド1行で実行可能
- インストールも簡単
シンプルな整形だけでなく、データの抽出や加工も可能なjqをぜひ活用してください。JSONの取り扱いがさらに便利になります!