Ruby,将所有散列“子字段”打印在一行中

时间:2018-09-19 13:54:09

标签: arrays json ruby hash

我有一个这样的JSON数组:

{"elements":[{"ECL001":{"description":"First Element", "max_level":3, "size":10}},{"ECL002":{"description":"Second Element", "max_level":4, "size":1}}]}

我正在解析我的结构,然后在满足条件的情况下打印数据。

require 'json'

x = JSON.parse(File.open('data_elements.dat').read)

elements = x["elements"]

elements.each do |elem_specific|
  elem_specific.each do |id, data|
    if data['max_level'] > 3
       puts "#{data['description']}, #{data['max_level']}, #{data[size]}"
    end
  end
end

它可以正常工作,但是有更快的打印数据解决方案吗?

我的意思是...可以代替这个

puts "#{data['description']}, #{data['max_level']}, #{data[size]}"

类似

puts "#{data[*ALL]}"

1 个答案:

答案 0 :(得分:0)

我解决了!

我发现了:

puts "#{data.values}" # Print all Values

puts "#{data.keys}" # Print all Keys