今日からjq

<h1>今日からjq</h1>

<h2>まずはコマンド理解から</h2>

<h3>では一発目</h3>

```
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r
{
  "response": {
    "location": [
      {
        "city": "目黒区",
        "city_kana": "めぐろく",
        "town": "三田",
        "town_kana": "みた",
        "x": "139.71233",
        "y": "35.640156",
        "prefecture": "東京都",
        "postal": "1530062"
      }
    ]
  }
}
```

<h3>ではここから さらに情報を絞っていきます</h3>

```
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r .response
{
  "location": [
    {
      "city": "目黒区",
      "city_kana": "めぐろく",
      "town": "三田",
      "town_kana": "みた",
      "x": "139.71233",
      "y": "35.640156",
      "prefecture": "東京都",
      "postal": "1530062"
    }
  ]
}
[root@centos8_1 ~]#
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r .response[]
[
  {
    "city": "目黒区",
    "city_kana": "めぐろく",
    "town": "三田",
    "town_kana": "みた",
    "x": "139.71233",
    "y": "35.640156",
    "prefecture": "東京都",
    "postal": "1530062"
  }
]
[root@centos8_1 ~]#
```
<h3>まずまず情報を絞ってこれましたね</h3>
<h3>ここからがややこしい</h3>
<h3>'シングルコレクションとパイプが必要になります</h3>

多分ここで言わんとしていることは
最初のresponse
次のlocationの[]の中の
までを１つのパイプで
次のパイプで
その中身を. [.prefecture, .town,.city]を出してよ

っている理解。



```
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r '.response.location[] | [.prefecture, .town,
 .city]'
[
  "東京都",
  "三田",
  "目黒区"
]

```
<h3>またこんなやり方もある</h3>

```
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r '.response.location[] | .city'
目黒区

```


<h3>では次は天気予報情報でやってみよう</h3>

```
[root@centos8_1 ~]# curl  https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json -s | jq -r .[].timeSeries[].areas[].area
{
  "name": "東京地方",
  "code": "130010"
}
{
  "name": "伊豆諸島北部",
  "code": "130020"
}
{
  "name": "伊豆諸島南部",
  "code": "130030"
}
{
  "name": "小笠原諸島",
  "code": "130040"
}
{
  "name": "東京地方",
  "code": "130010"
}
{
  "name": "伊豆諸島北部",
  "code": "130020"
}
{
  "name": "伊豆諸島南部",
  "code": "130030"
}
{
  "name": "小笠原諸島",
  "code": "130040"
}
{
  "name": "東京",
  "code": "44132"
}
{
  "name": "大島",
  "code": "44172"
}
{
  "name": "八丈島",
  "code": "44263"
}
{
  "name": "父島",
  "code": "44301"
}
{
  "name": "東京地方",
  "code": "130010"
}
{
  "name": "伊豆諸島北部",
  "code": "130020"
}
{
  "name": "伊豆諸島南部",
  "code": "130030"
}
{
  "name": "小笠原諸島",
  "code": "130040"
}
{
  "name": "東京",
  "code": "44132"
}
{
  "name": "大島",
  "code": "44172"
}
{
  "name": "八丈島",
  "code": "44263"
}
{
  "name": "父島",
  "code": "44301"
}
[root@centos8_1 ~]#

```

<h2>複数キーの取得は以下のサイトを参考に</h2>

https://qiita.com/hideki_okawa/items/32f9580e1de6802eb776

<h2>要素もだんだんうまくとれるようになってきた</h2>

```
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r '.[][][] | { x: .x , post: .postal }'
{
  "x": "139.71233",
  "post": "1530062"
}
```

<h2>お次はCSVだ</h2>

```
[root@centos8_1 ~]# curl "http://geoapi.heartrails.com/api/json?method=searchByPostal&postal=1530062" -s | jq -r '.[][][] | [ .x , .postal ] | @csv '
"139.71233","1530062"
```