使用Swift进行JSON解析

吉林白癜风QQ交流群 http://nvrenjkw.com/nxzx/5717.html

译者:Lanford3_3;校对:pmst;定稿:CMB

使用Swift解析JSON是件很痛苦的事。你必须考虑多个方面:可选类性、类型转换、基本类型(primitivetypes)、构造类型(constructedtypes)(其构造器返回结果也是可选类型)、字符串类型的键(key)以及其他一大堆问题。

对于强类型(well-typed)的Swift来说,其实更适合使用一种强类型的有线格式(wireformat)。在我的下一个项目中,我将会选择使用Google的protocolbuffers(这篇文章说明了它的好处)。我希望在得到更多经验后,写篇文章说说它和Swift配合起来有多么好用。但目前这篇文章主要是关于如何解析JSON数据——一种被最广泛使用的有线格式。

对于JSON的解析,已经有了许多优秀的解决方案。第一个方案,使用如Argo这样的库,采用函数式操作符来柯里化一个初始化构造器:

extensionUser:Decodable{staticfuncdecode(j:JSON)-DecodedUser{returncurry(User.init)^j

"id"*j

"name"*j

?"email"//Use?forparsingoptionalvalues*j

"role"//CustomtypesthatalsoconformtoDecodablejustwork*j

["


转载请注明:http://www.aierlanlan.com/tzrz/512.html