Ruby bindings for jq.
see http://stedolan.github.io/jq/.
jq requires the Oniguruma library to provide regex support. To install Oniguruma for your system, please follow the instructions in the jq FAQ.
Add this line to your application's Gemfile:
gem 'ruby-jq'
And then execute:
$ bundle
Or install it yourself as:
$ gem install ruby-jq
By default, ruby-jq downloads and compiles its own version of libjq. If you
would like to use your own version of libjq, you can skip this process by
passing the --use-system-libraries
flag to gem install
, or by setting the
RUBYJQ_USE_SYSTEM_LIBRARIES
env var.
require 'jq'
src = <<EOS
[
"FOO",
{
"BAR": [100, 200]
},
1.23,
[1, "2", 3]
]
EOS
jq = JQ(src)
jq.search('.[]') do |value|
p value
# => "FOO"
# => {"BAR"=>[100, 200]}
# => 1.23
# => [1, "2", 3]
end
p jq.search('.[]')
# => ["FOO", {"BAR"=>[100, 200]}, 1.23, [1, "2", 3]]
jq = JQ(src, parse_json: false)
jq.search('.[1].BAR') do |value|
p value
# => "[100,200]"
end
require 'jq/extend'
p {'FOO' => 100, 'BAR' => [200, 200]}.jq('.BAR[]')
# => [200, 200]
['FOO', 100, 'BAR', [200, 200]].jq('.[3][]') do |value|
p value
# => 200
end