您能为我解决Alamofire响应中的编码错误吗?

时间:2018-12-27 02:51:56

标签: json swift parsing alamofire codable

我最近在使用Codable解析响应时遇到问题。我正在将旧的应用程序重写为Swift。

我发现了问题。例如,我在服务器上有此响应:

{ "object": { "key1": "key" "key2": "key" "key3": "key" } }

我打电话给Alamofire请求以获取答复。

响应它,我用$ 0.responseJSON解码为JSON。当我打印它时,我在控制台中找到了它:

{ object: { key1: "key" "key2": "key" key3: "key" } }

当我尝试在此响应上使用Codable时。失败,找不到所需的值。 基本上,它可以解码“ key2”密钥。我认为它与配额有关,因为我在JSON中测试了不同的键。

能否给我一个提示,以改变应用程序方面的内容?

抱歉,此简单概述。

1 个答案:

答案 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"
    }
}

希望这对您有用。