使用可解码语法解析Swift 5中的嵌套JSON时出现问题
我有一个API,它返回的JSON结构与下面的类似。为了简单起见,我去掉了JSON中的所有兄弟字典,这样我们就可以专注于解析单个属性的核心目标。我似乎不明白为什么它不能解析 API JSON:使用可解码语法解析Swift 5中的嵌套JSON时出现问题,json,swift,Json,Swift,我有一个API,它返回的JSON结构与下面的类似。为了简单起见,我去掉了JSON中的所有兄弟字典,这样我们就可以专注于解析单个属性的核心目标。我似乎不明白为什么它不能解析 API JSON: { "players": { "uniqueUUIDwouldGoHere": { "ace": { "operatorpvp_kills": 11
{
"players": {
"uniqueUUIDwouldGoHere": {
"ace": {
"operatorpvp_kills": 11
}
}
}
}
我的Swift结构如下所示:
公共结构选项响应:可解码{
var玩家:[字符串:opsInner]
枚举编码键:字符串,编码键{
案例玩家=“玩家”
}
}
公共结构opsInner:可解码{
var ace:[字符串:ace]
枚举编码键:字符串,编码键{
案例ace=“ace”
}
}
公共结构ace:可解码{
var运算符vp_kills:Int=0
枚举编码键:字符串,编码键{
case operatorvp_kills=“operatorvp_kills”
}
}
最后,URLSession解码器部分:
let decoder=JSONDecoder()
让json=try decoder.decode(opsResponse.self,from:data)
来自捕获的错误消息:
typeMismatch(Swift.Dictionary<Swift.String, Any>, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "players", intValue: nil), _JSONKey(stringValue: "uniqueUUIDwouldGoHere", intValue: nil), CodingKeys(stringValue: "ace", intValue: nil), _JSONKey(stringValue: "operatorpvp_kills", intValue: nil)], debugDescription: "Expected to decode Dictionary<String, Any> but found a number instead.", underlyingError: nil))
typeMismatch(Swift.Dictionary,Swift.DecodingError.Context(codingPath:[codingkey(stringValue:“players”,intValue:nil),[u JSONKey(stringValue:“uniqueUUIDwouldGoHere”,intValue:nil),codingkey(stringValue:“ace”,intValue:nil),[u JSONKey(stringValue:“operatorvp_kills”,intValue:nil)],debugDescription:“应解码字典,但找到了一个数字。”,underyingerror:nil)
更新:
我改变了:
var-ace:[字符串:ace]
到
var-ace:ace