LoginSignup
0
0

More than 5 years have passed since last update.

jr: jq-like JSON processor for Rubyists @ Meguro.rb#16

Last updated at Posted at 2018-06-28
1 / 21

Hello


世界は JSON でいっぱい


JSON と仲良くなる必要がある


まずは jq の紹介


jq

  • JSON を pretty print したり
  • map/filter 的な操作をコマンドラインで行う
  • 便利

jq で不便なところ


ちょっと複雑なことをやろうとすると途端に面倒になる


ちょっと複雑なこと

  • reduce 的な集約処理
    • 一応できるけど専用の記法とか関数とかいちいち覚えてられない
  • モジュールシステム
    • 1.5 ぐらいで実装された
    • 個人的には document 一見して面倒になったので実は使ったことがない (すいません)

Ruby でできたくない?


できるようにしてみた


jr


Basic mechanism of jr

json_enumerator.instance_eval do
  # Your jr filter runs here
end
  • JSON を yield する Enumerator
  • メソッドチェインでなんでも繋げられる
  • 結果は勝手に出力される

jr の便利なところ

  • Ruby で書ける
    • 独特の記法を覚える必要がほぼない
  • RubyGems が使える
    • --require オプションを使う
  • jq のオプションもいろいろ移植している
    • --raw-output: JSON でなく生の文字列として出力 (sed/awk/grep とかに渡すのに便利)
    • --unbuffered: tail とかからパイプして JSON のログを眺めるのに便利
    • --raw-input, --monochrome-output などなど

jr の不便なところ

  • 単純な map なら jq の方が簡単
    • jq: jq '.foo'
    • jr: jr 'map(&:foo)'
  • シングルバイナリではない
    • mruby とかにするとどうだろう? RubyGems は使えなくなる?

gem i jr-cli


その他使い方: http://qiita.com/tags/jr


Fork me https://github.com/yuya-takeyama/jr


image.png


image.png


image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0