iOS快速Alamofire解析,创建通用类以解析json数据

用户1485365

我有要解析的JSON数据:

{
    "data": {
        "user_name": "JohP llDoe",
        "email_address": "[email protected]"
    },
    "result": {
        "code": 0
    }
}

数据类型从Web服务更改为另一个,但一般结构始终相同。

因此,我使用EVReflection创建此通用类来解析数据:

class MyResponse<T>: EVObject {

    var data : T?
    var result : Result?

}

class Result: EVObject {
    var message : String = ""
    var code : Int = 0
}

对于数据:

class Preaccount : EVObject {
    public var user_name : String = ""
    public var email_address : String = ""
}

并调用Web服务,我创建了此方法:

Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers)

            .responseObject { (response: DataResponse<MyResponse<Preaccount>>) in

                if response.result.isSuccess {

                    print(response.result.value!)
                }

                if response.result.isFailure {
                    let error : Error = response.result.error!
                }
        }

现在我访问不畅:

在此处输入图片说明

有没有一种方法可以创建通用方法并在参数中传递解析后的模型。

Gereon

我建议Decodable改用:

struct MyResponse<T: Decodable>: Decodable {
    let data: T?
    let result: Result?
}

struct Result: Decodable {
    var message: String?
    var code: Int
}

struct Preaccount: Decodable {
    let user_name: String
    let email_address: String
}

let data = """
{
    "data": {
        "user_name": "JohP llDoe",
        "email_address": "[email protected]"
    },
    "result": {
        "code": 0
    }
}
""".data(using: .utf8)!
let result = try? JSONDecoder().decode(MyResponse<Preaccount>.self, from: data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章