代码之家  ›  专栏  ›  技术社区  ›  Nifriz

Ruby,把所有的散列“subfield”打印在一行

  •  1
  • Nifriz  · 技术社区  · 6 年前

    我有一个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 回复  |  直到 6 年前
        1
  •  0
  •   Nifriz    6 年前

    我解决了!

    我发现:

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