访问json中的值,特别是通过ROR

访问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解析为哈希: "

我正在使用谷歌公民信息API获取代表性信息。假设这是谷歌生成的JSON的一部分,我想访问它的元素,但问题是-我不能使用“ocd部门/country:us/state:co/place:aurora”作为键,因为它是由谷歌动态生成的

如果我搜索一些不同的地址,如印度,则密钥将不同于“ocd部门/国家:美国/州:co/place:aurora”或其他地址(而不是“我们”,将有“in”),因此请建议我在这种情况下访问值的方式


如果您不理解问题或需要进一步澄清,请澄清

将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