それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

jq - JSONを整形してフォーマットを見やすくする

JSON全盛です。でもサーバーからのレスポンスは読みにくいです。

JSON dataにインデントをつけて読みやすくしたいです。

jq が便利

brew install jq 

jq は json の特定キーを取り出して整形してくれる

cat out.json | jq "."

Chromeで表示されるかのように、出力したい

使用例

takuya@air:~/Desktop$ cat out.json | jq "."
{
  "d": {
    "results": [
      {
        "SpellingSuggestions": [],
        "RelatedSearch": [],
        "News": [],
        "VideoOffset": "",
        "VideoTotal": "",
        "ImageOffset": "",
        "ImageTotal": "",
        "WebOffset": "",
        "WebTotal": "",
        "ID": "4c95bfdb-8389-xxxxxxxxxxxxxxx",
        "__metadata": {
          "type": "ExpandableSearchResult",
          "uri": "https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Composite?Sources='images'&Query='ヒートテック'&Market='ja-JP'&Adult='Strict'&$skip=0&$top=1"
        },
        "NewsTotal": "",
        "NewsOffset": "",
        "SpellingSuggestionsTotal": "",
        "AlteredQuery": "",
        "AlterationOverrideQuery": "",
        "Web": [],
        "Image": [],
        "Video": []
      }
    ]
  }
}

使用例2

上の、JSONから特定のキー値を取り出した結果がコレ

takuya@air:~/Desktop$ cat out.json | jq ".d.results[0].ID"
"4c95bfdb-8389-xxxxxxxxxxxxxxx"

json 使うのが楽しくなります。