[发明专利]一种JSON序列化和反序列化的优化方法及系统在审
申请号: | 202110419119.2 | 申请日: | 2021-04-19 |
公开(公告)号: | CN113138755A | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 王少白;周武建;侯尧 | 申请(专利权)人: | 上海逸动医学科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 卫素丹;胡晶 |
地址: | 201612 上海市松江区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 json 序列 优化 方法 系统 | ||
本发明涉及JSON序列化和反序列化优化技术领域,提供了一种JSON序列化和反序列化的优化方法及系统,包括:创建用于对JSON序列化和反序列化优化的JSON对象抽象基类,在JSON对象抽象基础类中定义包括创建各类型属性,以及对各个属性实现解析功能的宏定义对象;当对JSON执行反序列化操作时,通过JSON解析库对JSON数据进行解析,生成key‑va l ue格式的JSON对象键值对,进而通过调用JSON对象抽象基类创建包含JSON数据的所有属性成员的业务逻辑类,并对每个属性进行赋值;当对JSON执行序列化操作时,调用业务逻辑类,获取属性成员的具体值,形成key‑va l ue格式的JSON对象键值对,进而将JSON对象键值对,通过JSON解析库执行序列化操作,生成序列化后的JSON数据。
技术领域
本发明涉及JSON序列化和反序列化优化的技术领域,尤其涉及一种JSON序列化和反序列化的优化方法及系统。
背景技术
JSON是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。在软件开发编程中应用十分广泛。
序列化,是在软件编程过程中将高级语言(如C++)的类对象以字节的形式存储到磁盘中或者进行数据传输的方法。反序列化,即是将序列化后的字节对象还原为类对象的方法。在编程实践中以JSON作为数据存储格式,进行序列化和反序列化的方法被广泛的应用。
用JSON进行序列化操作时,需要将类对象的各个属性按照JSON的语法规范生成对应的JSON字符串,然后将字符串用户数据存储或传输。反序列化过程则需要安装JSON的语法规范对字符串进行解析,创建类对象,并为对象的各个属性进行赋值。
现有技术的劣势:
C++是一门面向对象的编程语言,在使用C++进行编程时,目前将C++对象用JSON做序列化和反序列化的方法有很多,如JsonCpp,RapidJSON,Parson,QT环境下的QJsonObject等数十种相关的类库。但这些方法大多只能做其方法指定的类对象与JSON数据格式之间的序列化和反序列化。比如QT环境下的JSON是用QjsonObject,QJsonValue等指定的类与JSON字符串进行相互转化,而JsonCpp只能在JSON字符串与Json::Value对象之间进行转换。这些固定的类对象只能以键值对(key-value)方式对属性进行读写,犹如一个黑盒子,没有公开的明确的对应JSON中包含的数据的属性。在实际的编程过程中,会存在如下几个方面的问题,尤其是在使用属性较多而且多重JSON对象嵌套的复杂的JSON数据时,这些问题会表现得尤为突出:
1、使用不方便,十分影响编程效率:编程人员不能在代码编辑器中直观的看到当前业务逻辑需要转换的JSON数据中存在哪些可以访问的属性对象,以及这些属性的值类型;
2、不利于多人协作:编程过程中使用JSON进行序列化和反序列化是为了进行数据交换,JSON数据格式可能由某个软件设计师进行定义,而使用JSON进行数据交换的软件编程人员可能不是前者,这使得编程人员必须完全了解或者很容易查询到JSON数据格式设定人员包含的结构和内容,这可能会导致大量的沟通或者编写以供查询的说明文档来解决这一问题,大大降低了多人合作的可靠性和效率。
3、容易出错,错误隐蔽,纠错困难:编程人员一旦写错或者写漏了JSON数据中对应的属性,代码编辑器无法在语法检测阶段就给出错误提示。在程序运行时也可能不会出现错误,但是会导致序列化后的JSON字符串中存储的数据是错误的,也会导致反序列化解析不出正确的属性值,从而导致与此JSON进行数据交换的一系列业务逻辑都使用了错误的数据,直到某个对数据敏感的业务逻辑发生错误,从而导致错误隐蔽,很难追溯到错误的源头,甚至对整个系统造成严重的不良后果。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海逸动医学科技有限公司,未经上海逸动医学科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110419119.2/2.html,转载请声明来源钻瓜专利网。