HandyJSON
HandyJSON copied to clipboard
兼容Realm.swift
在同时使用Realm.swift时,按照realm.swift方式创建的模型数组对象,handyJson无法解析 例如: var a = List < SomeModel > () a属性是无法解析的
我也遇到了相同的问题,尝试用mapping转化成list<T>类型,但是mapper.specify的converter闭包输入值不是标准的json,而是如下格式,这种是什么格式啊,怎么转成对象或json串: ( { lPhone = 88069176; phoneName = "\U7535\U8bdd\U3001\U7535\U68af\U7ef4\U4fee"; phoneType = 1; sPhone = 889176; } )
@xuyecan 我也遇到一样的问题
这个问题解决了吗?
handyjson和realm.swift数据库,可以桥接实现解析转换插入数据库。HandyJson识别不了realm中的reamlist类型属性,所以说没法转换,但是我们可以在model中建立一个HandyJson能解析的list属性,然后再建立一个realm的realmlist类型属性,在basemodel中添加实现方法 addRealmData 和 addHandyData,子类继承实现,addRealmData中实现把handyJson解析出来的数据添加到realmlist数据中例如: self.mediaList_realm.append(objectsIn: self.mediaList) ,反之如果需要把数据库的数据,转换成正常的json时,需要将reamllist数据添加到正常的list中例如: for item in self.mediaList_realm { self.mediaList.append(item) } 注意点:这里必须循环遍历添加到正常的list中,而无法使用 self.mediaList.append( self.mediaList_realm),切记。
增加了兼容List类型对象 踩坑中 https://github.com/yonglefu/HandyJSONRealm
dynamic var xxx = List<Double>() dynamic var title: String dynamic var 会导致getMappingHandler时property的address不匹配 注册的mapper会失效
可以用 HandyJSON 的 mapping方法来手动解析。
func mapping(mapper: HelpingMapper) {
mapper <<< self.objects <-- TransformOf<List<Object>, [[String: Any]]>(fromJSON: { jsonDict -> List<Object>? in
let list = List<Object>()
guard jsonDict != nil, jsonDict!.count > 0 else { return list }
let objs = [Object].deserialize(from: jsonDict) ?? []
for obj in objs {
list.append(obj!)
}
return list
}, toJSON: { list -> [[String: Any]] in
var arr = [Object]()
for obj in list! {
arr.append(obj)
}
return (arr.toJSON() as! [[String : Any]])
})
}
i have Object Realm but when using toJson() it's return empty data
@AscenX can u help me how to use your function? Thanks