curlをjson形式で見やすくする-日本語も表示して保存

前回SlackのAPIをCurlで叩いてjson形式で返して貰いました。ところが前回の書き方だと日本語の箇所が日本語で表示されていません。日本語もちゃんと表示したいなと思うのでちょっと変えて見たいと思います

jqを使用

jqというライブラリを利用することで、日本語の表示が可能となります。jqをインストールします

jqのインストール

#rootの場合
yum install jq

#sudo権限を持つユーザーの場合
sudo yum install jq

にてインストールできます。インストールしたら実際に使ってみたいと思います。

jqを使って日本語を表示

[centos@v157-xxxx-xxx-xx ~]$ curl https://slack.com/api/users.list?token=token | jq 

これで日本語で表示されるようになります。

問題点

curlで表示すると、json形式で整形されて表示されるのですがこれはファイル形式で出力されているわけではないです。例えばslackのユーザーリストですが30名近くいると3000行近くの量になります。

3000行近くをコピーしてペーストするのはちょっと骨が折れます。できればこの形式でファイル出力したいのが本音かなと思います。

jqの整形された状態で直接ファイル保存は出来ない

curでファイル形式を出力することはできるのですが、jq形式で出力した状態では保存できません。そこで一度curlの通常の状態で保存してその後変換していくという手をとります。

jsonファイルを保存

まずはcurlのコマンドでjsonファイルを保存します

[centos@v157-xxxx-xxx-xx ~]$ curl https://slack.com/api/users.list?token=token -o api.json
[centos@v157-xxxx-xxx-xx ~]$ cat api.json

とやると、1行だけの長いファイルが表示されます。

jsonファイルをjqで表示されるように変換

jqで表示されるように変換します

[centos@v157-xxxx-xxx-xx ~]$ ccat api.json | jq . > seikei_api.json
[centos@v157-xxxx-xxx-xx ~]$ cat seikei_api.json

これで完成です。

個人支援・寄付について

サイトラボではBuildreeの開発などのため、現在個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではkyashというサービスをつかっております。ビットコインでも受け付けております。