解析嵌套的hash并迭代以创建一个带有输出的ruby文件



所以我试图迭代这个嵌套的哈希来创建一个步骤指南,我想创建一个包含信息和输出文件的文件,以便将输出写为:

步骤_导向元件1元件2元件3

步骤_引导元件2元件3元件4

步骤_引导元件3元件4元件5

步骤_引导元件4元件5元件6

步进式无线电氙铝

步进引导氙铝硼

有办法做这个吗?我尝试迭代散列,但没有成功,并使用each_cons进行迭代,但仍然是相同的

你能帮我吗?我真的被卡住了

这是我的嵌套散列

_Data =[
    {
        "name": "script",
        "elements": [
            {
                "name": "unknown group",
                "headers": {
                    "map": {}
                },
                "agent": "",
                "bottom_comments": [],
                "checks": [
                    {
                        "title": "",
                        "field": "elemento1",
                        "value": "0",
                    },
                    {
                        "title": "",
                        "field": "elemento2",
                        "value": "0",
                    },
                    {
                        "title": "",
                        "field": "elemento3",
                        "value": "0",
                    },
                    {
                        "title": "",
                        "field": "elemento4",
                        "value": "0",
                    },
                    {
                        "title": "",
                        "field": "elemento5",
                        "value": "0",
                    },
                    {
                        "title": "",
                        "field": "elemento6",
                        "value": "1",
                    },
                    {
                        "title": "",
                        "field": "elemento7",
                        "value": "1",
                    },
                    {
                        "title": "",
                        "field": "elemento8",
                        "value": "1",
                    },
                    {
                        "title": "",
                        "field": "elemento9",
                        "value": "1",
                    },
                    {
                        "title": "",
                        "field": "elemento10",
                        "value": "0",
                    },
                    {
                        "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",
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

each_cons是正确的使用方法。您可能只是遇到了麻烦,因为您的数据结构太复杂了。部分问题在于,表结构的最后一部分是它自己的特殊结构。把它们分开单独处理。

all_checks = data[0][:elements][0][:checks]
checks = all_checks[0...-1] # all but the last one
checks.each_cons(3).each do |a, b, c|
  puts "steps_guide #{a[:field]} #{b[:field]} #{c[:field]}"
end
elementos = all_checks[-1][:elementos][0][:table]
elementos.each_cons(3).each do |a, b, c|
  puts "steps_guide #{a[:name]} #{b[:name]} #{c[:name]}"
end

有一件事可能会让你大吃一惊,那就是Ruby哈希中的"title":定义了一个名为:title符号,而不是JSON中的字符串。

相关内容

最新更新