ios - 在 API 调用中使用 Codable 和 Decodable

标签 ios swift xcode

我正在尝试使用 Codable 调用 API 并且我想访问所有 dictionaryAPI 中的数组>。

codable 这可能吗?

API 响应例如:

{
    "status": true,
    "logo": "https://abc.png",
    "data": [
        {
            "crumb": {
                "Menu": {
                    "navigate": "Home",
                },
            },
            "path": "2",
            "type": "type0",
            "orientation": [
                {
                    "name": "All",
                }
            ],
        },
    ]
}

最佳答案

您发布的 API 响应是无效的 JSON(它有一堆尾随逗号,使其成为非法)。这需要在生产者方面进行更改,完成后,您可以使用此结构访问数据:

struct Entry: Codable {
    let status: Bool
    let logo: String
    let data: [Datum]
}

struct Datum: Codable {
    let crumb: Crumb
    let path, type: String
    let orientation: [Orientation]
}

struct Crumb: Codable {
    let menu: Menu

    enum CodingKeys: String, CodingKey {
        case menu = "Menu"
    }
}

struct Menu: Codable {
    let navigate: String
}

struct Orientation: Codable {
    let name: String
}

关于ios - 在 API 调用中使用 Codable 和 Decodable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55792132/

相关文章:

iphone 开发 : how to auto facebook login if the facebook app already logged in

ios - iOS 中事件的 FQL 查询不起作用

swift - C 风格的语句对于 var i 循环将被弃用

ios - 为什么我的 Flutter 应用程序无法在带有 Xcode 的 iOS 模拟器上运行?

swift - xcode 8 实时预览无法正确预览

objective-c - iOS/Objective-C 上的谷歌 Protocol Buffer

objective-c - DrawRect 添加文字阴影

ios - 如何在IOS 9(Swift)中将选定的联系人显示到下一个 View Controller 中

swift - 以编程方式创建约束以查看 Controller 边距

ios - Realm.framework/Headers 没有那个文件或目录