【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の取り扱いがさらに便利になります!