我有一个解析的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
}
}
我正在尝试循环获取所有电子邮件值,并将它们写入CSV文件。
此刻,我正在尝试阅读电子邮件,并尝试了一些变体,但这是我得到的最接近的变体,但它不读取值,仅显示空白。
data_hash = JSON.parse(File.read('user.json'))
data_hash.keys.each do |user|
puts user['email']
end
答案 0 :(得分:1)
keys
方法returns an array of the key names;它不会返回值。
给出以下输入:
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
答案 1 :(得分:1)
如果您只需要电子邮件数据,则可以使用map
:
data_hash = JSON.parse(File.read('user.json'))
data_hash.values.map{|x| x[:email]}