D3Json 1.0.2

D3Json 1.0.2

测试测试过
Lang语言 SwiftSwift
许可协议 MIT
发布最新版本2015年5月
SPM支持 SPM

mozhenhau 维护。



D3Json 1.0.2

  • mozhenhau

D3Json

通过 Swift 的反射特性,将 JSON 数据转换为 model 对象。本类主要解决了其他一般 JSON 转换类不能转换自定义对象的问题。只有一个文件:D3Json.swift 扩展写在addExtension。可以参照扩展。

例子在 D3Json 的 Project 里面,写了两个测试,一个是 json 转单 model,一个是转 model 的 list。在 playground 里面也有两个例子,但是 playground 里面,alloc 自定义的 model 时直接出错,可能是 playground 的 bug。

只需要一句代码:var user:User = D3Json.jsonToModel(json, clazz: User.self, objc: User())就可以把 json 数据转换成 User 类。

转换成 list 对象:var user:Array = D3Json.jsonToModelList(jsons, clazz: User.self, objc: User())就可以把 json 数据转换成 Array 类。

存在问题:1.不处理 optional 类型,建议写 model 类时先初始化;2.为什么要传 clazz 同时传过 model 的实体类?因为反射 reflect(User.self.alloc()) 的时候存在自定义对象反射失败的问题……但是反射 reflect(User()) 则没有问题;3.尝试使用 NSClassFromString 写扩展,更方便。