如何在Ruby中访问JSON API数据里的'city'字段?
解决Ruby中访问JSON返回数据里的
city键问题 嘿,你已经搞定了最棘手的部分——API调用和JSON解析,剩下提取city字段其实超简单!让我一步步给你捋清楚:
首先,你得把解析后的JSON数据存到变量里,不然解析完就没啦~先修改你的代码:
require 'net/http' require 'uri' require 'json' url = "你的API地址(带密钥)" uri = URI(url) response = Net::HTTP.get(uri) # 把解析后的JSON存到data变量中,方便后续操作 data = JSON.parse(response)
再看你给出的JSON结构:
{ "results": [ { "zip": "08225", "city": "Northfield", "county": "Atlantic", "state": "NJ", "... } ] }
这里的results是一个数组,数组里的每个元素都是包含city键的哈希对象,所以访问方式分两种场景:
场景1:只需要第一个匹配的城市名
直接通过数组索引定位到第一个元素,再提取city键:
first_city = data["results"][0]["city"] puts first_city # 会输出 Northfield
场景2:需要获取所有2英里范围内的城市名
用each遍历results数组,逐个提取每个元素里的city:
data["results"].each do |location| puts "找到城市:#{location["city"]}" end
额外小提醒:避免空数组报错
如果API返回的results是空数组(比如没有找到匹配的城市),直接访问[0]会抛出错误,所以可以加个判断:
if data["results"].empty? puts "没有找到该邮编2英里范围内的城市" else # 执行上面的提取逻辑 end
把这些整合起来,你的程序就能顺利输出目标城市名称啦!
内容的提问来源于stack exchange,提问作者Leia_Organa
相关产品推荐
相关产品推荐

