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

如何使用Swift 4的Decodable解析JSON及图片下载CocoaPods库推荐

解决JSON解析困惑+图片加载库推荐

我来帮你搞定这个JSON解析的问题,顺便给你推荐几款好用的图片下载CocoaPods库~

一、JSON解析的问题修正

先看你的JSON数据和解析代码里的几个不匹配点,我帮你逐一修正:

1. 核心问题点

  • 键名大小写不匹配:JSON根字段是"fruits"(小写),但你代码里的Fruits结构体写的是let Fruits: [fruit](大写开头),这会直接导致解析失败。
  • 字段名不一致:第二个水果的名字字段是"title",但你结构体里定义的是name,得做个键映射才能正确解析。
  • 类型不匹配:JSON里的id是字符串(比如"1"),但你代码里写成了Int?,类型不对会触发解析错误。
  • 遗漏关键步骤:网络请求任务没有调用resume(),导致请求根本不会执行!

2. 修正后的完整代码

// 根响应结构体,匹配JSON的"fruits"字段
struct FruitsResponse: Decodable {
    let fruits: [Fruit]
}

// 水果模型结构体,处理字段映射
struct Fruit: Decodable {
    let id: String?
    let image: String?
    let name: String?
    
    // 自定义CodingKeys,把JSON里的"title"映射到结构体的"name"属性
    enum CodingKeys: String, CodingKey {
        case id, image
        case name = "title"
    }
}

// 网络请求部分修正
if let url = URL(string: "https://www.JSONData.com/fruits") {
    URLSession.shared.dataTask(with: url) { data, response, error in
        guard let data = data else {
            print("没有获取到数据")
            return
        }
        do {
            let response = try JSONDecoder().decode(FruitsResponse.self, from: data)
            print("解析成功:\(response.fruits)")
        } catch {
            // 打印具体错误信息,方便调试,别只打个"Parse Error"
            print("解析失败:\(error.localizedDescription)")
        }
    }.resume() // 必须调用这个方法,网络任务才会启动!
}

小提示

解析错误时一定要打印具体的error内容,而不是只输出模糊的提示,这样能快速定位是键不匹配、类型错误还是其他问题。

二、推荐的图片下载CocoaPods库

给你推荐3款主流且好用的图片加载库:

  • Kingfisher:Swift生态里最火的图片库,API简洁,支持异步加载、缓存、占位图、GIF播放等,完全贴合Swift语法,新手友好。安装命令:pod 'Kingfisher'
  • SDWebImage:老牌经典库,支持Objective-C和Swift,功能全面稳定,社区活跃,很多老项目都在使用。安装命令:pod 'SDWebImage'
  • AlamofireImage:和Alamofire网络库配套的图片加载库,如果你的项目已经在用Alamofire,用它会更统一。安装命令:pod 'AlamofireImage'

举个Kingfisher的简单用法,给UIImageView设置图片:

import Kingfisher

// 假设你有个UIImageView叫fruitImageView,还有个Fruit模型实例叫fruit
fruitImageView.kf.setImage(
    with: URL(string: fruit.image ?? ""),
    placeholder: UIImage(named: "默认占位图")
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:10:17