Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

CLI上でjsonパースをしてくれるjqを使えばワンライナーが不要となる

タダで天気のYAML形式データを生成Rubyワンライナー - Bye Bye Mooreという記事にて、
お天気を取得するワンライナーを書きました。
...が、jqというコマンドを導入するともうJsonまわりで別言語に頼る必要がなくなります

導入

$ brew install jq
==> Downloading http://stedolan.github.io/jq/download/source/jq-1.3.tar.gz
######################################################################## 100.0%
==> ./configure
==> make
🍺  /usr/local/Cellar/jq/1.3: 7 files, 236K, built in 12 seconds
$ curl http://weather.livedoor.com/forecast/webservice/json/v1?city=130010 | jq "."
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7793    0  7793    0     0  19668      0 --:--:-- --:--:-- --:--:-- 19679
{
  "description": {
    "publicTime": "2014-01-31T22:43:00+0900",
    "text": " 日本付近は、日本海中部の移動性高気圧に覆われています。\n\n【関東甲信地方】\n 現在、関東甲信地方は、おおむね晴れています。\n\n 今夜は、移動性高気圧に覆われて、関東甲信地方はおおむね晴れるでしょ\nう。\n\n 明日は、移動性高気圧が本州付近から日本の東に移動する見込みです。関\n東甲信地方は、おおむね晴れますが、次第に雲が広がりやすくなる見込みで\nす。\n\n 関東近海では、今夜から明日にかけて波が高いでしょう。船舶は高波に注\n意してください。\n\n【東京地方】\n 今夜は、晴れるでしょう。\n 明日は、晴れますが、昼前から時々曇る見込みです。"
  },
  "title": "東京都 東京 の天気",
  "copyright": {
...
    },
    {
      "name": "奥多摩町",
      "link": "http://weather.livedoor.com/area/forecast/1330800"
    }
  ]
}

この通りです。これはタマゲタなぁ...

東京の天気を取得する

$ curl http://weather.livedoor.com/forecast/webservice/json/v1?city=130010 | jq -c ".forecasts[] | {date,dateLabel, telop}"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7793    0  7793    0     0  25713      0 --:--:-- --:--:-- --:--:-- 25634
{"telop":"晴れ","dateLabel":"今日","date":"2014-01-31"}
{"telop":"晴のち曇","dateLabel":"明日","date":"2014-02-01"}
{"telop":"曇時々雨","dateLabel":"明後日","date":"2014-02-02"}

もうRubyワンライナーすら不要になってしまいました(白目