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

Swift中通过URLSession解析JSON:提取Data数组的name与city字段

从URL获取JSON并提取指定字段的解决方案

嘿,作为刚接触JSON的新手,碰到这种提取特定字段的需求完全不用慌!我来一步步带你搞定,从获取数据到提取目标字段都给你讲清楚~

整体思路

核心步骤其实很简单:

  1. 向目标URL发送请求,拿到返回的JSON数据并解析成可操作的对象/字典
  2. 直接提取JSON里的Data数组
  3. 遍历Data数组,逐个取出name和嵌套在location数组里的city字段

不同语言的具体实现

下面给你举两个新手常用语言的示例,你可以根据自己的项目选择:

1. JavaScript(浏览器环境)

用浏览器原生的fetch API就能搞定,代码简单易懂:

// 替换成你的目标URL
const targetUrl = '你的接口URL';

fetch(targetUrl)
  .then(response => {
    // 检查请求是否成功
    if (!response.ok) throw new Error(`请求失败: ${response.status}`);
    return response.json(); // 把JSON字符串解析成JS对象
  })
  .then(parsedData => {
    // 提取Data数组
    const dataArray = parsedData.Data;
    
    // 遍历数组,提取需要的字段
    dataArray.forEach(item => {
      // 直接取name字段
      const userName = item.name;
      // 注意city在location数组的第一个元素里,用可选链避免报错
      const userCity = item.location?.[0]?.city || '未填写城市';
      
      console.log(`姓名:${userName},城市:${userCity}`);
      // 这里也可以把结果存到数组里或者做其他处理
    });
  })
  .catch(error => {
    console.error('处理过程出错:', error);
  });

小贴士:?.是可选链操作符,如果某个item没有location或者location是空数组,不会直接崩溃,而是返回undefined,再配合||设置默认值,新手用这个更安全。

2. Python

用requests库来发送请求(先通过pip install requests安装):

import requests

try:
    # 替换成你的目标URL
    target_url = '你的接口URL'
    # 发送GET请求
    response = requests.get(target_url)
    # 检查请求是否成功
    response.raise_for_status()
    
    # 解析JSON为Python字典
    parsed_data = response.json()
    
    # 提取Data数组
    data_array = parsed_data['Data']
    
    # 遍历数组提取字段
    for item in data_array:
        # 用get方法,键不存在时返回默认值
        user_name = item.get('name', '未填写姓名')
        # 处理location数组
        location_list = item.get('location', [])
        user_city = location_list[0].get('city', '未填写城市') if location_list else '未填写城市'
        
        print(f"姓名:{user_name},城市:{user_city}")
        
except requests.exceptions.RequestException as e:
    print(f"请求或解析出错:{e}")

小贴士:用dict.get(key, 默认值)可以避免因为某个字段缺失而抛出KeyError,适合处理返回数据可能不完整的情况。


注意事项

  • 确保目标URL返回的是标准JSON:你的示例里键名没有加双引号(比如name:RAHUL),但标准JSON要求键名必须用双引号("name": "RAHUL"),如果接口返回的是非标准格式,解析会失败,要确认接口输出符合规范。
  • 浏览器环境要注意跨域问题:如果你的前端页面和接口URL不在同一个域名下,可能会碰到CORS错误,这时候需要后端配置跨域允许,或者用代理解决。

内容的提问来源于stack exchange,提问作者abel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:18:47