我有一个单行JSON文件,我正在尝试迭代并寻找循环它的最佳方法。
爆炸性的,它看起来像:
{
"system": "Test",
"Continents": [
{
"Continent": {
"name": "Europe",
"location": "North"
},
"Continent": {
"name": "Australia",
"location": "South"
},
"Continent": {
"name": "Asia",
"location": "North"
}
}
]
}
首先,我正在使用以下内容加载JSON,这会成功加载完整的JSON。
File.open(json_file, 'r') do |file|
file.each do |line|
JSON.parse(line).each do |item|
## CODE TO ITERATE HERE
end
end
end
我不确定该怎么做才能遍历Continents
部分并提取相关记录。目标是循环并在列表/表格/显示中输出信息。
感谢您的帮助 - 让我知道我是否可以澄清。
答案 0 :(得分:5)
JSON.parse
会将您的JSON字符串转换为Ruby哈希值,因此您可以像处理其他任何内容一样使用它:
json = JSON.parse(line)
json["Continents"].each do |continent|
# do something
end
但是,您的数据存在单独的问题。如果您实际使用JSON.parse
与您发布的数据,您应该得到如下结果:
{"system"=>"Test", "Continents"=>[{"Continent"=>{"name"=>"Asia", "location"=>"North"}}]}
你会注意到只有一个大陆 - 因为Ruby哈希只支持每个键一个值,所以Continent
键被覆盖了每个Continent
个JSON。您可能需要查看格式化该数据的不同方式。