Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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ワンライナーすら不要になってしまいました(白目