用Gloss解析JSON数据

在这篇博客中,你将学会用Gloss来解析JSON数据。项目中的JSON文件包含App Store排行榜上前25个app。
参考博客:
Swift Tutorial: Working with JSON

Swift方式解析JSON数据

用Gloss解析JSON数据_第1张图片

用Gloss解析JSON数据

JSON对象映射(JSON Object Mapping)

对象映射(Object Mapping)是指将JSON对象转化成Swift对象。在定义了模型对象和相应的映射规则后,Gloss会为你解析JSON数据。好处在于:

  • 代码简洁
  • 直接操作对象而不是字典和数组
  • 可通过扩展model class来添加新功能

Gloss地址

解析本地JSON数据
  • 定义模型对象
    模型对象必须遵守Decodable协议,这样才能解析JSON数据。

1.新建一个文件TopApps.swift,在里面创建data model。那么<~~表示什么呢?它是编码运算符(Encode Operator),能让Gloss将key为”feed“的值解码。


用Gloss解析JSON数据_第2张图片

2.新建文件Feed.swift,在里面定义Feed


用Gloss解析JSON数据_第3张图片

3.定义App模型对象,它代表JSON文件中的一个app
用Gloss解析JSON数据_第4张图片

上面两个模型对象的属性是可选的,但是这里定义的两个属性都是non-optional的,所以我们需要检查它是否为nil。


用Gloss解析JSON数据_第5张图片
  • 使用Gloss
    在playground里,添加以下代码
    用Gloss解析JSON数据_第6张图片

    在控制台里,你可以看到
    console
解析远程JSON数据

打开DataManage.swift,声明TopAppURL。



从URL加载数据。
用optional binding确保data存在。
将data传到success闭包里。


Gloss底层浅析

刚才用到的<~~其实是Decoder.decode函数的一种运算符。Gloss有很多种解码函数:

  • 普通类型(Decoder.decode)
  • 可解码的model(Decoder.decodeDecodable)
  • 普通数组(Decoder.decode)
  • 可解码model类型的数组(Decoder.decodeDecodableArray)
    等等,这里就不列举了。
    对于Gloss来说,Decodable model这个概念很重要。
    项目地址

你可能感兴趣的:(用Gloss解析JSON数据)