jsonの変数に格納されているキー値をgrep /印刷します。

jsonの変数に格納されているキー値をgrep /印刷します。

入れ子になったjsonを含む変数があります。

a={
  "version": "3.0",
  "user": "unknown_unknown",
  "dateGenerated": "2020-07-08T11:53:23Z",
  "status": "OK",
  "data": [
    {
      "parameter": "t_2m:C",
      "coordinates": [
        {
          "lat": 39.23054,
          "lon": 9.11917,
          "dates": [
            {
              "date": "2020-07-08T15:53:23Z",
              "value": 25.1
            }
          ]
        }
      ]
    }
  ]
}

変数内の入れ子になったjsonから「値」(強調表示された値など)をgrepする方法を探していますa

使用中ですが、grepjqを表示できません。 「日付」(echo $result | grep -Po '"dates":.*?[^\\],.*?[^\\]"')が表示されますが、値のみが表示されるわけではありません。

助けが必要ですか?

ベストアンサー1

(「日付」配列の最初のオブジェクト)から(「座標」配列の最初のオブジェクト)から(「データ」配列の最初のオブジェクト)の「値」が必要です。

$ a='{"version":"3.0","user":"unknown_unknown","dateGenerated":"2020-07-08T11:53:23Z","status":"OK","data":[{"parameter":"t_2m:C","coordinates":[{"lat":39.23054,"lon":9.11917,"dates":[{"date":"2020-07-08T15:53:23Z","value":25.1}]}]}]}'
$ echo "$a" | jq -r '.data[0].coordinates[0].dates[0].value'
25.1

おすすめ記事