gpt4 book ai didi

Swift JSONDecoder 处理字典数组的字典

转载 作者:搜寻专家 更新时间:2023-11-01 06:28:42 26 4
gpt4 key购买 nike

这是一个模型设计相关的问题,与 swift 上的 JSONDecoder 可编码功能有关。

我有以下 JSON:

"author": {
"name": "abc",
"emailAddress": "abc@xyz.com",
"id": 8665,
"displayName": "A B C",
"active": true,
"slug": "abc",
"type": "NORMAL",
"links": {
"self": [
{
"href": "some_href"
}
]
}
}

我正在尝试使用新的 swift 4 Codeable 功能对此进行解码。

因此我创建了如下结构:

struct Author: Codeable {
let name: String,
let emailAddress: String,
let id: String,
let displayName: String,
let active: String,
let type: String,
let links: [String: [Link]]
}

struct Link: Codeable {
let href: String
}

一旦我在这个 json 上运行 JSONDecoder().decode,我就会得到上述格式的模型对象。但是,Author 类中的 links 属性是作为字典获取的。现在要访问 self 字段的值,我需要大致执行以下操作:

let selfLink = author.links["self"]
let href = selfLink[0].href

是否有更好的方法来对结构建模以避免这种情况?

最佳答案

是的,您可以通过添加一个这样的变量来做到这一点:

struct Author: Codable {
let name: String
let emailAddress: String
let id: String
let displayName: String
let active: String
let type: String
let links: [String: [Link]]
var linkArr: [Link]? {
return links["self"]
}
}

然后直接得到:

author.linkArr[0].href

关于Swift JSONDecoder 处理字典数组的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com