Я не знаю, как быстро обрабатывать 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)
Как мне справиться со случаем, когда запись не является массивом объектов?