示例中写法解析失败,不知是我写法错误,还是这种写法暂不支持解析
mg459046365 opened this issue · comments
struct HttpResposeData<T: Convertible>: Convertible {
/// 服务器状态码
var code: Int?
/// 服务器消息
var message: String?
/// 数据
var data: T?
init() {
}
}
class KJTestMode: Convertible {
var name: String?
var age: Int = 18
required init() {}
class func testSampleData() {
let jsonString = """
{
"code":1000,
"message":"测试数据",
"data":[
{
"name":"a",
"age":18
},
{
"name":"b",
"age":20
},
{
"name":"c",
"age":"24"
}
]
}
"""
let model = jsonString.kj.model(HttpResposeData<[KJTestMode]>.self)
let model1 = jsonString.kj.model(type: HttpResposeData<[KJTestMode]>.self)
print("testSampleData解析结果\(model),,,,\(model1)")
//testSampleData解析结果Optional(LQTool.HttpResposeData<Swift.Array<LQTool.KJTestMode>>(code: Optional(1000), message: Optional("测试数据"), data: nil)),,,,Optional(LQTool.HttpResposeData<Swift.Array<LQTool.KJTestMode>>(code: Optional(1000), message: Optional("测试数据"), data: nil))
}
class func testSampleData1() {
let jsonString = """
{
"code":0,
"message":"",
"data":{
"key1":{
"name":"a",
"age":18
},
"key2":{
"name":"b",
"age":20
},
"key3":{
"name":"c",
"age":"24"
}
}
}
"""
let model = jsonString.kj.model(HttpResposeData<[String: KJTestMode]>.self)
let model1 = jsonString.kj.model(type: HttpResposeData<[String: KJTestMode]>.self)
print("testSampleData1解析结果\(model),,,,\(model1)")
//testSampleData1解析结果Optional(LQTool.HttpResposeData<Swift.Dictionary<Swift.String, LQTool.KJTestMode>>(code: Optional(0), message: Optional(""), data: Optional([:]))),,,,Optional(LQTool.HttpResposeData<Swift.Dictionary<Swift.String, LQTool.KJTestMode>>(code: Optional(0), message: Optional(""), data: Optional([:])))
}
}
extension Array: Convertible where Element: Convertible {
// 添加支持
}
extension Dictionary: Convertible where Value: Convertible {
// 添加支持
}
data数据无法解析出来,希望明杰老师指点一下 @CoderMJLee
T去掉Convertible就好了,只需要让模型遵守Convertible,数组、字典不需要
struct HttpResposeData<T>: Convertible {
/// 服务器状态码
var code: Int?
/// 服务器消息
var message: String?
/// 数据
var data: T?
init() {
}
}
/*
extension Array: Convertible where Element: Convertible {
// 添加支持
}
extension Dictionary: Convertible where Value: Convertible {
// 添加支持
}
*/
谢谢啦@CoderMJLee ,测试OK了。