【问题标题】:ruby extract data from nested arrayruby 从嵌套数组中提取数据
【发布时间】:2020-09-28 13:34:07
【问题描述】:

如何从嵌套哈希中访问深度键值?

我想提取_Data里面的值,我想提取data[]里面的字段和大小,像fieldvalue_sizevalue一样打印出来

elemento3_3

我有这段代码,但只获得了所有的数据键和值,我在进行这个迭代时遇到了一些麻烦,我是 ruby​​ 的新手

_Data[0][:checks].each do |intera|

puts "#{itera[:data]}

end

这是嵌套数组

   _Data =[
    {
      
           
                "agent": "",
                "bottom_comments": [],
                "checks": [
                    {
                        "title": "new",
                        "data": [{

                            "field": "elemento1",
                            "value": "0",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento2",
                            "value": "0",
                            "size":"4",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento3",
                            "value": "0",
                            "size":"3",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento4",
                            "value": "0",
                            "size":"17",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento5",
                            "value": "0",
                            "size":"12",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento6",
                            "value": "0",
                            "size":"19",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento7",
                            "value": "0",
                            "size":"9",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento8",
                            "value": "0",
                            "size":"10",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento11",
                            "value": "0",
                            "size":"14",
                            }
                        ]
                    },
                    {
                        "title": "new",
                        "data": [{
                            
                            "field": "elemento19",
                            "value": "0",
                            "size":"14",
                            }
                        ]
                    },
                    {
                        "type": "condiciones",
                        "elementos": [
                            {
                                
                                "table": [
                                    {
                                        "title": "",
                                        "name": "radio",
                                    },
                                    {
                                        "title": "",
                                        "name": "xenon",
                                    },
                                    {
                                        "title": "",
                                        "name": "aluminio",
                                    },
                                    {
                                        "title": "",
                                        "name": "boro",
                                    },
                                    {
                                        "title": "",
                                        "name": "oro",
                                    },
                                    {
                                        "title": "",
                                        "name": "bromo",
                                    },
                                    {
                                        "title": "",
                                        "name": "oxigeno",
                                    }
                                ]
                            }
                        ]
                    }

                ]
            
          }
        ]

【问题讨论】:

    标签: ruby loops parsing


    【解决方案1】:
    _Data[0][:checks].each do |intera|
    
      intera[:data].each do |data|
        puts "#{data[:filed]}_#{data[:value]}"
      end
    
    end
    

    希望对您有所帮助。

    【讨论】:

    • @Pedro 抱歉,答案代码假定为 _Data 结构,所以这是您可以迭代 _Data 的一种方式
    • _Data 结构仍然存在,为什么 te second each 没有在 :data 内部迭代?
    【解决方案2】:

    这是打印值(如果存在)的一行代码。让我知道有关所使用的任何方法的任何进一步细节是否会有所帮助。

    _Data[0][:checks].pluck(:data).flatten.compact.each{|i| puts "#{i[:field]}_#{i[:size]}" if i[:field] && i[:size]}

    【讨论】:

    • 它给了我#<0x0000000004fa5a60>&lt;&gt;
    • &amp;&amp;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    相关资源
    最近更新 更多