ios json转model的简单现实

简介: 在android开发中,可用第三方的转换库如gson等。当然在ios也有一些库如MJExtensiond等。在这里,我简单实现一下。一、先建一个model并且继承NSObject,代码如下:classUser:NSObject{var name:...

在android开发中,可用第三方的转换库如gson等。当然在ios也有一些库如MJExtensiond等。在这里,我简单实现一下。

一、先建一个model并且继承NSObject,代码如下:

classUser:NSObject{

var name:String?

var sex:String?

var age:Int=0

override func setValue(_value:Any?, forUndefinedKey key:String) {

}

}

二、在控制器中进行测试

classTestViewController:UIViewController{

overridefuncviewDidLoad() {

super.viewDidLoad()

let dic = ["name":"张三","sex":"男","age":"20"]

let user =User()

user.setValuesForKeys(dic)

print("-转换结果--",user.name!,"---",user.sex!,"---",user.age)

}

overridefuncdidReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

}

}

运行后可以看到

-转换结果--张三------ 20

注意:

但是有个问题,当我们的json数据字段多余我们的模型字段的时候就直接奔溃了(也就是说要一一对应,不然就报错)。这样的话显然不是我们想要的,因为在实际开发中,我们都只会取我们想要的那部分数据,其他的我们并不需要,这个问题怎么解决的其实也简单,只需要在我们的模型中重写一个setValue方法就可以过滤掉没有的字段了代码如下:

classUser:NSObject{

varname:String?

varsex:String?

varage:Int=0

varno:String?

override func setValue(_value:Any?, forUndefinedKey key:String) {

}

}

重写后我们在测试的那个字典中加入a这个字段再来测试一下

classTestViewController:UIViewController{

overridefuncviewDidLoad() {

super.viewDidLoad()

letdic = ["name":"张三","sex":"男","age":"20","no":"1000","a":"wx"]

letuser =User()

user.setValuesForKeys(dic)

print("-转换结果--",user.name!,"---",user.sex!,"---",user.age,user.no!)

}

overridefuncdidReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

}

}

运行不报错了,结果为:-转换结果--张三------ 20 1000

这个就是简单实现josn和model转换的示例,如有问题欢迎留言!

博客园地址:www.cnblogs.com/zzjbk/p/7941406.html

目录
相关文章
|
11月前
|
JSON 数据格式 iOS开发
iOS基础 JSON格式
iOS基础 JSON格式
97 0
|
11月前
|
JSON 移动开发 数据格式
iOS url传递JSON格式参数方法
iOS url传递JSON格式参数方法
216 0
|
JSON 安全 数据格式
YYModel JSON和model相互转化
JSON转模型是我们做iOS开发的基础技能,本文将通过[YYModel](https://github.com/ibireme/YYModel)这个框架安全快速的完成JSON到模型的转换,其中还会介绍到一款好用的插件[ESJsonFormat](https://github.com/EnjoySR/ESJsonFormat-Xcode)。
547 0
|
JSON Dart Android开发
Flutter如何JSON转Model
在开发中,服务端通常给我们返回的是JSON数据,我们需要将JSON数据转成我们的模型对象来使用。 在Flutter中,有几种JSON转模型的方式,我们还是以豆瓣为例,来进行一个演练;
630 0
Flutter如何JSON转Model
|
JSON 数据格式 iOS开发
iOS Json转字典Dict
开发中有时候需要用到假数据, 假数据的用途
313 0
iOS Json转字典Dict
|
JSON API 数据格式
iOS保存接口返回枚举数据为本地json文件可用于测试
iOS保存接口返回枚举数据为本地json文件可用于测试
306 0
iOS保存接口返回枚举数据为本地json文件可用于测试
|
XML JSON JavaScript
iOS网络请求指南: 请求参数的拼接(签名)、返回参数解析(JSON/XML解析)、案例(条码支付综合前置平台申请退款)
iOS网络请求指南: 请求参数的拼接(签名)、返回参数解析(JSON/XML解析)、案例(条码支付综合前置平台申请退款)
355 0
iOS网络请求指南: 请求参数的拼接(签名)、返回参数解析(JSON/XML解析)、案例(条码支付综合前置平台申请退款)
|
JSON 数据格式
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
|
JSON 数据格式
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
91 0
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
|
JSON 数据格式
how does framework know the Advertisement model should be used to parse json
how does framework know the Advertisement model should be used to parse json
how does framework know the Advertisement model should be used to parse json