【发布时间】:2019-05-27 02:01:26
【问题描述】:
当提要给我两个不同的结果时,我不知道如何使用可解码协议快速处理 JSON 提要。如果有多个“条目”,则 json 看起来像这样,并且条目值是一个对象数组
{
"feed": {
"publisher": "Penguin",
"country": "ca"
},
"entry": [
{
"author": "Margaret Atwood",
"nationality": "Canadian"
},
{
"author": "Dan Brown",
"nationality": "American"
}
]
}
但是,如果只有一个条目,json 看起来像这样,其中条目只是一个字典
{
"feed": {
"publisher": "Penguin",
"country": "ca"
},
"entry": {
"author": "Margaret Atwood",
"nationality": "Canadian"
}
}
要解码第一种情况,我会使用以下结构
struct Book: Decodable {
let feed: Feed
let entry: [Entry]
}
// MARK: - Entry
struct Entry: Decodable {
let author, nationality: String
}
// MARK: - Feed
struct Feed: Decodable {
let publisher, country: String
}
然后使用类似这样的东西来解码检索到的数据
let object = try JSONDecoder().decode(Book.self, from: data)
当条目不是对象的数组时,我该如何处理?
【问题讨论】: