访问json中的值,特别是通过ROR
我正在使用谷歌公民信息API获取代表性信息。假设这是谷歌生成的JSON的一部分,我想访问它的元素,但问题是-我不能使用“ocd部门/country:us/state:co/place:aurora”作为键,因为它是由谷歌动态生成的 如果我搜索一些不同的地址,如印度,则密钥将不同于“ocd部门/国家:美国/州:co/place:aurora”或其他地址(而不是“我们”,将有“in”),因此请建议我在这种情况下访问值的方式访问json中的值,特别是通过ROR,json,ruby-on-rails-4,Json,Ruby On Rails 4,我正在使用谷歌公民信息API获取代表性信息。假设这是谷歌生成的JSON的一部分,我想访问它的元素,但问题是-我不能使用“ocd部门/country:us/state:co/place:aurora”作为键,因为它是由谷歌动态生成的 如果我搜索一些不同的地址,如印度,则密钥将不同于“ocd部门/国家:美国/州:co/place:aurora”或其他地址(而不是“我们”,将有“in”),因此请建议我在这种情况下访问值的方式 如果您不理解问题或需要进一步澄清,请澄清 将json解析为哈希: "
如果您不理解问题或需要进一步澄清,请澄清 将json解析为哈希:
"divisions":{
"ocd-division/country:us/state:co/place:aurora":{
"name":"Aurora city",
"scope":"citywide",
"officeIds":[
"O0",
"O1"]
}}
然后迭代所有分区:
parsed_data = JSON.parse google_data
或者只获取第一个:
parsed_data['divisions'].each do |division_key, division_info|
# do something with each division
end
如果还需要解析密钥,请使用此选项:
division_key, division_info = parsed_data['divisions'].first
现在您可以通过
更多信息['country']
Michal访问它,非常感谢。:)如果我的回答有用,你能把它标记为接受吗?
more_info = division_key.split('/').inject(Hash.new) do |hash, key_part|
if key_part.include? ":"
key, value = key_part.split ":"
hash[key] = value
end
hash
end