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

Swift API解码Struct错误排查:gorest接口解码问题

解码gorest API接口的Decodable结构体问题修复

你的Decodable结构体主要存在字段名不匹配、嵌套结构错误和不必要的数组包装这几个问题,对照gorest posts接口的返回结构,修正如下:

核心错误点

  • Root结构体的字段名first/second/third完全不符合API返回的key,应该对应code/meta/data
  • Code结构体多余:API返回的code是单个整数,无需单独封装成结构体
  • Meta结构体嵌套错误:API里的meta包含的是单个pagination对象,不是数组,且字段名应为pagination而非meta
  • 错误的数组类型:你给code、meta都加了数组包装,但实际它们都是单个值/对象,只有data是Post数组

修正后的完整代码

struct Root: Decodable {
    let code: Int
    let meta: Meta
    let data: [Post]
}

struct Meta: Decodable {
    let pagination: Pagination
}

struct Pagination: Decodable {
    let total: Int
    let pages: Int
    let page: Int
    let limit: Int
}

struct Post: Decodable {
    let id: Int
    let user_id: Int
    let title: String
    let body: String
}

如果需要让字段名更符合Swift命名规范(比如把user_id改成userId),可以添加CodingKeys枚举:

struct Post: Decodable {
    let id: Int
    let userId: Int
    let title: String
    let body: String
    
    enum CodingKeys: String, CodingKey {
        case id, title, body
        case userId = "user_id"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:45:35