Ошибка декодирования: typeMismatch «Ожидается декодирование массива <Any>, но вместо этого найден словарь». - PullRequest
0 голосов
/ 17 июня 2020

Я изо всех сил пытаюсь декодировать JSON. Я пытаюсь декодировать свой JSON с помощью

let decodedData = try decoder.decode(Country.self, from: data)

Вот кодируемая структура:

struct CountryData: Codable {

    let translations: Name
    let capital: String
    let currencies: [String]

}

struct Name: Codable {
    let fr: String
}

typealias Country = [CountryData]

Вот JSON:

[
    {
        "name": "Norway",
        "topLevelDomain": [
            ".no"
        ],
        "alpha2Code": "NO",
        "alpha3Code": "NOR",
        "callingCodes": [
            "47"
        ],
        "capital": "Oslo",
        "altSpellings": [
            "NO",
            "Norge",
            "Noreg",
            "Kingdom of Norway",
            "Kongeriket Norge",
            "Kongeriket Noreg"
        ],
        "region": "Europe",
        "subregion": "Northern Europe",
        "population": 5176998,
        "latlng": [
            62.0,
            10.0
        ],
        "demonym": "Norwegian",
        "area": 323802.0,
        "gini": 25.8,
        "timezones": [
            "UTC+01:00"
        ],
        "borders": [
            "FIN",
            "SWE",
            "RUS"
        ],
        "nativeName": "Norge",
        "numericCode": "578",
        "currencies": [
            "NOK"
        ],
        "languages": [
            "no",
            "nb",
            "nn"
        ],
        "translations": {
            "de": "Norwegen",
            "es": "Noruega",
            "fr": "Norvège",
            "ja": "ノルウェー",
            "it": "Norvegia"
        },
        "relevance": "1.5"
    }
]

Ошибка I got:

Decoding error: typeMismatch(Swift.Array<Any>, Swift.DecodingError.Context(codingPath: [], debugDescription: "Expected to decode Array<Any> but found a dictionary instead.", underlyingError: nil))

Я не мог понять, что я сделал не так, я попытался проверить свою структуру с помощью инструмента app.quicktype, но не смог обнаружить никаких проблем. Я новичок в Swift, было бы здорово, если бы кто-нибудь дал мне совет, как решить эту проблему. Спасибо?

1 Ответ

0 голосов
/ 17 июня 2020

ваш код правильный

enter image description here

Уже пробую на детской площадке

...