все.
Я пытаюсь создать структуру для хранения содержимого вызова API, имеющего определенную структуру, но не знаю, как ее написать.
Вот один результат из API, где у меня возникают проблемы с кодированием принимающей структуры:
"10E": {
"baseSetSize": 264,
"block": "Guilds of Ravnica",
"boosterV3": [
[
"rare",
"mythic rare"
],
"uncommon",
"uncommon",
"uncommon",
"common",
"common",
"common",
"common",
"common",
"common",
"common",
"common",
"common",
"common",
"land",
"marketing"
],
"cards": [ ... ]
}
API указывает, что ключ «boosterV3» имеет формат array(array, string)
. Однако некоторые возвращаемые данные содержат массив из 16 строк, и по крайней мере один из них имеет массив строк в качестве первого элемента.
Я пробовал использовать следующую структуру:
struct MtGSet : Codable {
let name: String
let baseSetSize: Int
let block: String
let boosterV3: [String]
let cards: [MtGCard]
}
Но работа с API с этим генерирует эту ошибку:
[CodingKeys(stringValue: "boosterV3", intValue: nil), _JSONKey(stringValue: "Index 0", intValue: 0)],
debugDescription: "Expected to decode String but found an array instead.", underlyingError: nil))
Можно ли написать структуру данных в Swift, которая будет принимать либо 16 строковых значений, либо 15 строковых значений и 1 массив строк для ключа boosterV3
?
Спасибо.