我最近在使用Codable解析响应时遇到问题。我正在将旧的应用程序重写为Swift。
我发现了问题。例如,我在服务器上有此响应:
{
"object": {
"key1": "key"
"key2": "key"
"key3": "key"
}
}
我打电话给Alamofire请求以获取答复。
响应它,我用$ 0.responseJSON解码为JSON。当我打印它时,我在控制台中找到了它:
{
object: {
key1: "key"
"key2": "key"
key3: "key"
}
}
当我尝试在此响应上使用Codable时。失败,找不到所需的值。 基本上,它可以解码“ key2”密钥。我认为它与配额有关,因为我在JSON中测试了不同的键。
能否给我一个提示,以改变应用程序方面的内容?
抱歉,此简单概述。
答案 0 :(得分:-1)
您可以在其上创建两个Codable结构或Codable类。一个用于根对象,第二个用于您的对象。
下面是我的课程,供您回复。
根类:
class RootClass: Codable {
var object: Object?
}
对象类:
class Object: Codable {
var key1 : String?
var key2 : String?
var key3 : String?
}
因此,现在您可以在数据响应中执行以下操作:
do {
// Here data is the data you get from response.
let root = try JSONDecoder().decode(RootClass.self, from: data)
} catch {
print(error)
}
我建议您验证JSON,它必须像这样:
{
"object": {
"key1": "key",
"key2": "key",
"key3": "key"
}
}
希望这对您有用。