玖叶教程网

前端编程开发入门

在Swift中使用JSON(swift json转model)

在Swift中使用JSON

如果您的应用程序与Web应用程序通信,则从服务器返回的信息通常格式为JSON。您可以使用Foundation框架的JSONSerialization类将JSON转换为Swift数据类型,如Dictionary,Array,String,Number和Bool。但是,由于您无法确定应用程序接收到的JSON的结构或值,因此可能需要正确反序列化模型对象。这篇文章介绍了在应用程序中使用JSON时可以采取的几种方法。

从JSON提取值

该JSONSerialization类方法的JSONObject(附:选项:)返回类型的值的任何和引发错误,如果数据不能被解析。

虽然有效的JSON 可能只包含一个值,但Web应用程序的响应通常将对象或数组编码为顶级对象。您可以使用可选绑定和as?在if或guard语句中键入cast操作符,将已知类型的值提取为常量。要从JSON对象类型获取Dictionary值,有条件地将其转换为[String:Any]。要从JSON数组类型获取Array值,有条件地将其转换为[Any](或具有更特定元素类型的数组,如[String])。您可以通过键或数组值通过索引使用类型转换可选绑定与下标访问器或与枚举的模式匹配来提取字典值。

wift的内置语言功能使您可以轻松地使用Foundation API解码JSON数据,并无需使用外部库或框架。

从JSON中提取的值创建模型对象

由于大多数Swift应用程序遵循模型 - 视图 - 控制器设计模式,因此在模型定义中将JSON数据转换为特定于应用程序域的对象通常很有用。

例如,当编写为本地餐馆提供搜索结果的应用程序时,您可以使用初始化程序来实现一个可以接受JSON对象的餐厅模型和一种向服务器/搜索端点发出HTTP请求的类型方法,然后以异步方式返回数组的餐厅对象。

请考虑以下餐厅型号:

甲餐厅具有名称类型的字符串,一个位置表示为坐标对,和一个集的膳食含有嵌套的值膳食枚举。

以下是在服务器响应中如何表示单个餐厅的示例:

关注山村程序员,关注更多精彩!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言