Swift:使用未知密钥解码 JSON?

Swift: decode JSON with unknown keys?

我想解码一个简单的 JSON 文件,问题是顶部的键都不一样:

{
    "pikachu": {
        "name": "Pikachu",
        "number": 25
    },
    "bulbasaur": {
        "name": "Bulbasaur",
        "number": 1
    },
    "caterpie": {
        "name": "Caterpie",
        "number": 10
    }   
}

目前我有这个型号:

struct Pokemon: Decodable {
    //var key: ?
    var pokemonInfo: PokemonInfo
}

struct PokemonInfo: Decodable {
    var name: String
    var number: Int
}

但是我不知道如何设置 Pokemon 的密钥,以及将什么作为参数传递给 JSONDecoder

let decodedResult = try JSONDecoder().decode([Pokemon].self, from: data)

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

来这里做什么?

感谢您的帮助

JSON中没有数组也没有键pokemonInfo

由于密钥实际上是不相关的,最简单的解决方案是解码 [String:PokemonInfo] 并将其映射到 values

let decodedResult = Array(try JSONDecoder().decode([String:PokemonInfo].self, from: data).values)