You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:39:38