JSONファイルは、データのコレクションを人間が読める形式で保存するため、すばらしいものです。ただし、JSONファイルが縮小されている場合、JSONファイルを読み取るのは面倒な場合があります。
例としてこれを取り上げます:
コンピュータはそれを簡単に読むことができます。人間でも読むことができますが、JSONファイルがコンテンツを表示するように適切にフォーマットされていれば、はるかに簡単になります。つまり、JSONファイルは結局このように読み取ることになっています:
ほとんどのテキストエディタをいくつかのプラグインとともに使用して、適切なフォーマットで表示できます。ただし、ターミナルに固執している場合、またはシェルスクリプトでそれを実行したい場合は、状況が異なります。
縮小されたファイルを入手した場合は、LinuxターミナルでJSONファイルをきれいに印刷する方法を紹介します。
Linuxでjqコマンドを使用してJSONをきれいに印刷する
jqはコマンドラインJSONプロセッサです。これを使用して、構造化データのスライス、フィルタリング、マッピング、および変換を行うことができます。ここでは、jqコマンドラインツールの使用について詳しくは説明しません。
jqを使用するには、最初にjqをインストールする必要があります。ディストリビューションのパッケージマネージャーを使用してインストールできます。ユニバースリポジトリを有効にすると、aptコマンドを使用してUbuntuにインストールできます:
sudo apt install jq
インストールしたら、次の方法でJSONファイルをディスプレイにきれいに印刷します。
jq . sample.json
catを使いたくなるかもしれませんが、catコマンドの役に立たない使い方の1つだと思います。
cat sample.json | jq
上記のコマンドは元のJSONファイルに影響を与えないことに注意してください。変更は書き込まれません。
Linuxでコマンド出力をファイルにリダイレクトする方法はすでにご存知でしょう。同じファイルにリダイレクトすることはできず、teeコマンドが常に機能するとは限らないこともご存知でしょう。
元のJSONファイルをきれいな印刷形式で変更する場合は、解析された出力を新しいファイルにパイプしてから、元のJSONファイルにコピーできます。
jq . sample.json > pretty.json
ボーナス:jqコマンドでJSONファイルを縮小する
逆のスタンスを取り、適切にフォーマットされたJSONファイルを縮小してみましょう。 JSONファイルを縮小するには、コンパクトオプション-cを使用できます。
jq -c < pretty.json
必要に応じて、猫とリダイレクトを使用することもできます:
cat pretty.json | jq -c
Pythonを使用してLinuxでJSONファイルをきれいに印刷する
システムにPythonがインストールされている可能性が高くなります。その場合は、ターミナルでJSONファイルをきれいに印刷するために使用できます:
python3 -m json.tool sample.json
JSONファイルを解析して適切な形式で印刷する方法は他にもあることを私は知っています。自分でそれらを探索することもできますが、JSONファイルをきれいに印刷するという仕事をするにはこれら2つで十分です。
元の記事