我有一个解析的JSON文件,其中包含一个Hash:
{
"user1" : {
"about_you" : "jjhj",
"age" : 18,
"email" : 18
},
"user2" : {
"about_you" : "jjhj",
"age" : 18,
"email" : 18
},
"user3" : {
"about_you" : "jjhj",
"age" : 18,
"email" : 18
}
}
我正在尝试循环并获取所有的电子邮件值,并将它们写入CSV文件。
目前我正在尝试阅读电子邮件,并尝试了一些变体,但这是我得到的最接近的,但它没有读取值,只是显示为空白。
data_hash = JSON.parse(File.read('user.json'))
data_hash.keys.each do |user|
puts user['email']
end
keys
方法返回一个关键字名称数组;它不返回值。
给定这些输入:
json = '{"user1":{"about_you":"jjhj","age":18,"email":18},"user2":{"about_you":"jjhj","age":18,"email":18},"user3":{"about_you":"jjhj","age":18,"email":18}}'
data_hash = JSON.parse(json)
尝试只迭代散列的键和值:
data_hash.each { |k,v| puts v['email'] }
或者如果你喜欢:
data_hash.each do |k,v|
puts v['email']
end
每次返回:
18
18
18
如果您只需要电子邮件数据,那么您可以使用map
:
data_hash = JSON.parse(File.read('user.json'))
data_hash.values.map{|x| x[:email]}