[发明专利]一种模型对象与JSON对象互转的方法和装置在审
申请号: | 201810833719.1 | 申请日: | 2018-07-26 |
公开(公告)号: | CN110764768A | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 董魁 | 申请(专利权)人: | 北京京东金融科技控股有限公司 |
主分类号: | G06F8/40 | 分类号: | G06F8/40 |
代理公司: | 11219 中原信达知识产权代理有限责任公司 | 代理人: | 张一军;张效荣 |
地址: | 101111 北京市北京经济*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 模型对象 预定义 递归算法 计算机技术领域 嵌套 方法和装置 实例化 父类 转换 | ||
本发明公开了一种模型对象与JSON对象互转的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取预定义的模型对象的属性,以得到所述属性对应的属性名;从实例化后的模型对象中获取所述属性名对应的属性值;判断所述属性值是否为预定义的工具类的实例,若所述属性值为所述工具类的实例,则通过递归算法生成JSON对象,其中,所述工具类为所述模型对象的父类。该方法通过获取模型对象的属性值后,判断属性值的类型,如果所述属性值为预定义的工具类的实例,则使用递归算法生成JSON对象,实现了嵌套有其他模型对象的模型对象到JSON对象的转换。
技术领域
本发明涉及计算机领域,尤其涉及一种模型对象与JSON对象互转的方法和装置。
背景技术
现有的iOS系统中,模型对象与JSON对象之间的转换时通过API(ApplicationProgramming Interface,应用程序编程接口)动态获取模型对象的所有属性,并结合一些算法实现的。具体有以下两种实现方式:方式一:获取所有属性之后,以属性名为Key(键),调用-[NSObjectvalueForKey:]接口或者调用Get方法获取属性值,并以Key-Value(键值对)的形式存储在字典(NSDictionary)内,然后调用+[NSJSONSerializationdataWithJSONObject:options:error:]接口转换为JSON数据。方式二:通过JSONModel模型框架实现模型对象与JSON对象之间的转换。其中,iOS系统为苹果公司开发的移动操作系统;JSON是一种轻量级的数据交换格式。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
方式一只支持NSString属性类型的转换,不支持模型对象嵌套、不支持数组(NSArray)内的模型对象。方式二能支持上述转换,但是实现算法和接口复杂,代码量大,不易使用。
发明内容
有鉴于此,本发明实施例提供一种模型对象与JSON对象互转的方法和装置,包括一种将模型对象转换为JSON对象的方法和装置,以及一种将JSON对象转换为模型对象的方法和装置。该实施例在获取模型对象的属性值后,判断属性值的类型,如果所述属性值为预定义的工具类的实例,则使用递归算法生成JSON对象,实现了嵌套有其他模型对象的模型对象到JSON对象的转换。
为实现上述目的,根据本发明实施例的一个方面,提供了一种将模型对象转换为JSON对象的方法的方法。
本发明实施例的一种将模型对象转换为JSON对象的方法的方法,包括:获取预定义的模型对象的属性,以得到所述属性对应的属性名;从实例化后的模型对象中获取所述属性名对应的属性值;判断所述属性值是否为预定义的工具类的实例,若所述属性值为所述工具类的实例,则通过递归算法生成JSON对象,其中,所述工具类为所述模型对象的父类。
可选地,所述从实例化后的模型对象中获取所述属性名对应的属性值的步骤之后,还包括:判断所述属性值是否为数组,若所述属性值为数组且所述数组的数组元素被标记为可JSON化的模型对象,则判断所述数组元素是否为所述模型对象的实例;当所述数组的数组元素为所述模型对象的实例时,将所述数组元素转换为所述JSON对象。
可选地,所述方法还包括:将所述数组元素标记为可JSON化的模型对象;将所述模型对象的类名以及所述属性名作为键,将所述数组元素作为值进行存储,以判断所述数组的数组元素是否被标记为可JSON化的模型对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东金融科技控股有限公司,未经北京京东金融科技控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810833719.1/2.html,转载请声明来源钻瓜专利网。