我有一个巨大的json数据从HTTP响应获得,我只需要一个特定的部分被解码为一个模型.

{
    "root1": {
        "items": [
            {
                ...
            },
            {
                ...
            },
            {
                ...
            },
            {
                ...
            },
            {
                ...
            }
        ]
    },
    "root2": {
        ...
    },
    "page": {
        "size": 10,
        "totalElements": 5,
        "totalPages": 1,
        "number": 0
    }
}

这是我的json模板,我不想为根元素创建模型.我只对items数组感兴趣.有没有直接破译的方法?

推荐答案

您可以使用CodingKey枚举来 Select 要解码的内容,但您仍然需要从顶层/根层进行解码.

struct Response: Decodable {
    let root1: Root1

    enum CodingKeys: String, CodingKey {
        case root1
    }
}

struct Root1: Decodable {
    let items: [Item]

    enum CodingKeys: String, CodingKey {
        case items
    }
}

然后可以按照如下方式进行解码

var items: [Item] = []
do {
     items = try JSONDecoder().decode(Response.self, from: data).root1.items
} catch {

}

Ios相关问答推荐

在SwiftData中从@ Query创建可排序、有序和分组的数据

SwiftUI.从自定义视图修改器访问自定义视图子视图

在SwiftUI中使用系统图像和色调创建圆形按钮

在iOS中禁用URLSession自动重试机制

当重新呈现UI时,嵌套的 struct 值如何与@Observable一起工作?

在滚动视图中固定页眉,但在页眉上方嵌入元素

Swift-如何通过Case Let访问模型变量

使用异步重载实现Swift协议一致性

圆角矩形路径上的蛇形动画

当 Swift 枚举具有 any existential 作为其关联值之一时,我如何使它符合 `Equatable`?

@MainActor 类的扩展是主要演员吗?

如何在 SwiftUI 中创建显示当前电池电量的电池徽章

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

react 在 android 上运行的本机应用程序,但在 iOS 上出现问题,详细信息在描述中共享

SensorKit - 获取数据不调用结果委托函数

如何让我的 iOS 应用程序与 api 连接?

如何快速设置条形按钮的图像?

使用 Vim 代替(或与)Xcode 进行 iOS 开发

iOS:应用程序在安装应用程序时未征求用户许可.每次都获得 kCLAuthorizationStatusNotDetermined - Objective-c & Swift

'无效更新:第 0 节中的无效行数