JavaScriptを有効にしてください

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

 ·  ☕ 3 分で読めます

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

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


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

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

  • JSONデータの整形
  • 特定のデータ抽出
  • データの加工や変換

jqのインストール

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

Debian/Ubuntu

1
2
sudo apt update
sudo apt install jq

macOS (Homebrewを使用)

1
brew install jq

その他の環境

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


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

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

基本コマンド構文

1
jq '.' input.json > output.json

コマンドの説明

  • jq '.'
    • JSON全体を指定して整形します。この場合、データの加工や変更は行われません。
  • input.json
    • 整形したいJSONファイルを指定します。
  • >
    • 整形結果を別のファイルにリダイレクトします。
  • output.json
    • 整形後のファイル名を指定します。

実行例

整形前のJSON

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

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

コマンドの実行

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

1
jq '.' example.json > formatted_example.json

整形後のJSON

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

1
2
3
4
5
{
  "name": "Alice",
  "age": 25,
  "city": "Tokyo"
}

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


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

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

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

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


jqの便利な使い方

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

特定のキーの抽出

1
jq '.name' input.json

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

インデント幅の調整

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

1
jq --indent 4 '.' input.json

エラー対策

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

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

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

まとめ

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

メリット

  • 可読性の向上
  • コマンド1行で実行可能
  • インストールも簡単

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


参考リンク

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer