[发明专利]一种无层级结构的JSON反序列化方法、装置及存储介质在审
申请号: | 201910123348.2 | 申请日: | 2019-02-18 |
公开(公告)号: | CN109871519A | 公开(公告)日: | 2019-06-11 |
发明(设计)人: | 钱玉明 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F17/22 | 分类号: | G06F17/22 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 层级结构 字段 注解 反序列化 存储介质 目标属性 反序列化操作 代码编写 属性分解 属性确定 系统开发 字段添加 复用率 解析 | ||
1.一种无层级结构的JSON反序列化方法,其特征在于,所述方法包括:
获取目标JSON字符串;
通过解析所述目标JSON字符串,获取所述目标JSON字符串包含的JSON属性和JSON属性值;
根据所述目标JSON字符串包含的JSON属性确定Java对象中的目标字段,所述目标字段的字段名称与所述目标JSON字符串包含的JSON属性的属性名称相同;
为所述目标字段添加注解属性,并将所述注解属性分解后的属性作为所述目标字段的目标属性;
基于所述注解属性给所述目标属性进行赋值。
2.根据权利要求1所述的JSON反序列化方法,其特征在于,所述通过解析所述目标JSON字符串,获取所述目标JSON字符串包含的JSON属性和JSON属性值,具体包括:
所述目标JSON字符串包括目标JSON对象格式字符串和/或目标JSON数组格式字符串;
从所述目标JSON对象格式字符串的开始符开始,依次读取所述目标JSON对象格式字符串的对象节点对应的JSON属性和JSON属性值;
判断所述目标JSON对象格式字符串的对象节点是否存在子节点;
若存在,则依次读取所述对象节点的子节点对应的JSON属性和JSON属性值;
和/或,
从所述目标JSON数组格式字符串的开始符开始,依次读取所述目标JSON数组格式字符串的数组节点对应的JSON属性和JSON属性值;
判断所述目标JSON数组格式字符串的数组节点是否存在子节点;
若存在,则依次读取所述数组节点的子节点对应的JSON属性和JSON属性值。
3.根据权利要求2所述的JSON反序列化方法,其特征在于,所述为所述目标字段添加注解属性,并将所述注解属性分解后的属性作为所述目标字段的目标属性,具体包括:
为所述目标字段添加注解属性,所述注解属性包括对象格式字符串对应的对象节点属性、对象子节点属性以及所述对象格式字符串对应的JSON属性,将所述注解属性分解后得到的属性作为所述目标字段的目标属性;
和/或,
为所述目标字段添加注解属性,所述注解属性包括数组格式字符串对应的数组节点属性、数组子节点属性以及所述数组格式字符串对应的JSON属性,将所述注解属性分解后得到的属性作为所述目标字段的目标属性。
4.根据权利要求3所述的JSON反序列化方法,其特征在于,所述基于所述注解属性给所述目标属性进行赋值,具体包括:
判断所述注解属性中第一个属性的属性值类型是否为虚拟类型,所述虚拟类型对应的注解属性为可分解的属性;
如果所述注解属性中第一个属性的属性值类型为虚拟类型时,则遍历所述注解属性中所有的属性,直到最后一个属性,获取所述最后一个属性的属性值类型;
所述最后一个属性的属性值类型为基本数据类型时,则将所述JSON属性值赋给所述目标属性。
5.根据权利要求4所述的JSON反序列化方法,其特征在于,所述获取所述最后一个属性的属性值类型,之后还包括:
所述最后一个属性的属性值类型为集合类型时,遍历所述集合类型对应的目标集合,依次获取所述目标集合的元素对应的属性值类型,所述目标集合包括所述最后一个属性的属性值类型;
所述目标集合的元素对应的属性值类型为基本数据类型时,则将所述JSON属性值赋给所述目标属性,并将所述JSON属性值加入所述目标集合;
或者,
所述目标集合的元素对应的属性值类型为自定义类型时,则将所述JSON属性值转换为所述自定义类型,以及将所述转换后的JSON属性值赋给所述目标属性,并将所述转换后的JSON属性值加入所述目标集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910123348.2/1.html,转载请声明来源钻瓜专利网。