Как правильно декодировать массив категорий в Swift - PullRequest
0 голосов
/ 06 августа 2020

Например, у меня есть

[{
    "name": "Afghanistan",
    "numericCode": "004",
    "altSpellings": ["AF", "Afġānistān"],
    "currencies": [{
        "code": "AFN",
        "name": "Afghan afghani",
        "symbol": "؋"
    }]
},
...

Чтобы получить «altSpellings» и «валюты», как мне построить свою модель?

struct WorldData: Identifiable, Decodable {
    var id: String {
        return numericCode
    }
    var name: String
    var numericCode : String
    var altSpellings : Array
    var currencies : ???
}

и, если мой объект API не имеет идентификатора, это будет примерно так:

var id: ObjectIdentifier

Спасибо!

1 Ответ

2 голосов
/ 06 августа 2020

Создайте другую структуру Currency для 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...