json - 在 Swift 中解码类别数组的正确方法是什么
问题描述
例如,我有
[{
"name": "Afghanistan",
"numericCode": "004",
"altSpellings": ["AF", "Afġānistān"],
"currencies": [{
"code": "AFN",
"name": "Afghan afghani",
"symbol": "؋"
}]
},
...
要获得“altSpellings”和“currencies”,我将如何构建我的模型?
struct WorldData: Identifiable, Decodable {
var id: String {
return numericCode
}
var name: String
var numericCode : String
var altSpellings : Array
var currencies : ???
}
并且,如果我的 API 对象没有 ID,会不会是:
var id: ObjectIdentifier
谢谢!
解决方案
Currency
为and创建另一个结构currencies
,因为altSpellings
它只是[String]
.
struct WorldData: Identifiable, Decodable {
let name, numericCode: String
let altSpellings: [String]
let currencies: [Currency]
var id: String {
return numericCode
}
}
struct Currency: Decodable {
let code, name, symbol: String
}
然后使用解码[WorldData]
。
do {
let decodedWorldData = try JSONDecoder().decode([WorldData].self, from: data)
print(decodedWorldData)
} catch {
print(error)
}
推荐阅读
- java - Spring Boot Kafka 批量转发
- python-3.x - 使用 python 调用 AWS lambda 时出错。错误:位置参数,但给出了 2 个
- dns - 通过 CoreDNS 将 DNS 转发到 Cloudflare 的 DNS-over-TLS
- ansible - 带有项目名称的自定义消息失败
- html - about:blank#blocked 在浏览器中下载文件时
- java - 读取包含多个条目的文件并根据用户输入输出一个条目
- java - 提交变量 Spring/Thymeleaf 后如何修复“异常评估 SpringEL 表达式”错误
- php - 我的 while 和我的数组 sqli 请求有问题
- java - 导出文件夹的大小
- linux - 如何读取 iw wlan0 站输出