gpt4 book ai didi

json - 如何使用 swift Codable 协议(protocol)解码以 "["开头的 JSON

转载 作者:行者123 更新时间:2023-11-28 05:37:35 26 4
gpt4 key购买 nike

我遇到了来自服务器的 JSON 响应,需要处理它。

基本上,JSON 的根级别是数组而不是字典。例如:

[
{
"name": "Joe",
"age": 50
},
]

我已经构建了一个符合 Codable 的结构:

struct response: Codable {
let responseArray: [Person]
}

struct person: Codable {
let name: String
let age: Int

enum CodingKeys: String, CodingKey {
case name = "name"
case age = "age"
}
}

尝试解码时出现以下错误:

▿ DecodingError
▿ typeMismatch : 2 elements
- .0 : Swift.Dictionary<Swift.String, Any>
▿ .1 : Context
- codingPath : 0 elements
- debugDescription : "Expected to decode Dictionary<String, Any> but found an array instead."
- underlyingError : nil

如果没有命名,有没有办法使用编码键来处理数组?

如果不是,如何处理这种情况?

最佳答案

json的根是一个数组,解码应该是[Person].self 你可以试试

struct Person: Codable {
let name: String
let age: Int
}
let res = try? JSONDecoder().deocde([Person].self,from:data)
print(res)

关于json - 如何使用 swift Codable 协议(protocol)解码以 "["开头的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com