一种动态json解析的方法技术

技术编号:36218755 阅读:14 留言:0更新日期:2023-01-04 12:16
本发明专利技术提供了一种动态json解析的方法,包括以下步骤:根据需要解析的json写出解析规则;循环解析规则,根据解析参数取出需要的数据;获取需要的值。本专利的技术方案主要用于json数据的动态解析,在保证一定效率的前提下,传入指定的规则,程序根据规则从json数据中取出需要的值,包含了json解析的各种情况,数组解析,键值对解析和数组键值对组合解析,实现了一种json动态解析的方法。该方法可以提高开发效率,提高设备接入的速度,并减少不必要的测试部署时间。要的测试部署时间。要的测试部署时间。

【技术实现步骤摘要】
一种动态json解析的方法


[0001]本专利技术涉及软件
,具体涉及一种动态json解析的方法。

技术介绍

[0002]一般来说,对于不同格式json数据的处理,需要根据数据的格式专门写特定的方法,取出数据中需要的值,因为修改了代码,所以需要测试和重新部署,耗时较长。但对于部分场景,如智能设备管理平台,需要接入各种不同厂家生产,不同类型的设备,需要接入的设备种类很多,如果每接入一种设备就要开发出对应上报数据的解析方法,会严重影响服务的稳定性和用户体验,还会延长开发周期,降低开发效率。

技术实现思路

[0003]本专利技术的目的在于提供一种动态json解析的方法,以期解决
技术介绍
中存在的问题。
[0004]为了实现上述目的,本专利技术采用以下技术方案:
[0005]一种动态json解析的方法,包括以下步骤:
[0006]根据需要解析的json写出解析规则;
[0007]循环解析规则,根据解析参数取出需要的数据;
[0008]获取需要的值。
[0009]在一些实施例中,所述根据需要解析的json写出解析规则,包括:
[0010]构建取值规则的json数据,所述json数据是一个数组,所述数组的每个值代表的如何从json数据中取出键值对或者目标值。
[0011]在一些实施例中,所述数组包括type,arrayKey,jsonKey,value,key,其中,type:指定了取出值的类型,jsonKey为键值对,arrayKey为数组,以及String,取出的目标值类型均当作字符串处理,每次取出的数据为键值对数据或String数据。
[0012]在一些实施例中,当type为String时,此时获取到的值即为目标值;
[0013]在一些实施例中,当type为array时,使用arrayKey来指定json数据中需要获取数组的key,此时可以指定2种参数取出数组中的键值对,一种是index,根据索引取出数组中的某个键值对,或者解析数组中的对象,指定jsonKey和value来取出指定的键值对。
[0014]本申请所提供的一种动态json解析的方法具有的有益效果包括但不限于:
[0015]本专利的技术方案主要用于json数据的动态解析,在保证一定效率的前提下,传入指定的规则,程序根据规则从json数据中取出需要的值,包含了json解析的各种情况,数组解析,键值对解析和数组键值对组合解析,实现了一种json动态解析的方法。该方法可以提高开发效率,提高设备接入的速度,并减少不必要的测试部署时间。
附图说明
[0016]附图1是本专利技术的流程图。
具体实施方式
[0017]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0018]相反,本申请涵盖任何由权利要求定义的在本申请的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本申请有更好的了解,在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。
[0019]以下将结合图1对本申请实施例所涉及的一种动态json解析的方法进行详细说明。值得注意的是,以下实施例仅仅用于解释本申请,并不构成对本申请的限定。
[0020]json有2中基本数据类型,键值对,如{"key":"value"},包含基本数据类型的数组,如["value1","value2"],数组里面也可能包含键值对,如[{"key1":"value1"},{"key2":"value2"}],基于这2中基本上数据类型,任意形式的json数组可以分为几种基本情况,键值对的值是数组,如{"key":[{"key1":"value1"},{"key2":"value2"}]},键值对的值是键值对,如{"key":{"key1":"value1"}},还有就是之前数组的2种情况,本方法就是基于这些基本组合实现从任意json数据中取出需要的值。
[0021]一种动态json解析的方法,包括以下步骤:
[0022]根据需要解析的json写出解析规则;
[0023]循环解析规则,根据解析参数取出需要的数据;
[0024]获取需要的值。
[0025]在一些实施例中,所述根据需要解析的json写出解析规则,包括:
[0026]构建取值规则的json数据,所述json数据是一个数组,所述数组的每个值代表的如何从json数据中取出键值对或者目标值。
[0027]在一些实施例中,所述数组包括type,arrayKey,jsonKey,value,key,其中,type:指定了取出值的类型,jsonKey为键值对,arrayKey为数组,以及String,取出的目标值类型均当作字符串处理,每次取出的数据为键值对数据或String数据。
[0028]当type为String时,此时获取到的值即为目标值;
[0029]当type为array时,使用arrayKey来指定json数据中需要获取数组的key,此时可以指定2种参数取出数组中的键值对,一种是index,根据索引取出数组中的某个键值对,或者解析数组中的对象,指定jsonKey和value来取出指定的键值对。
[0030]根据需要解析的json写出解析规则
[0031]从形如这样的数据{"a":{"b":"value"}}中取出键值对{"b":"value"}
[0032]type:”json”key:“a”[0033]从形如这样的数据{"a":[{"b":"value1"},{"c":"value2"}]}中取出键值对{"b":"value1"}
[0034]type:"array",arrayKey:“a”,jsonKey:”b”,value:“value1”[0035]从形如这样的数据{"a":"b"}中取出值b
[0036]type:"String",key:“a”[0037]循环解析规则,根据解析参数取出需要的数据
[0038]从形如这样的数据{"a":{"b":"value"}}中取出键值对{"b":"value"}
[0039]传入的数据:type:”json”key:“a”[0040]将{"a":{"b":"value"}}解析为json对象
[0041]根据key为a,取出json对象中key为a的数据,type为json,将数据作为键值对解析,得到目标键值对
[0042]从形如这样的数据{"a":[{"b":"value1"},{"c":"value2"}]}中取出键值对{"b":"value1"}
[0043]传入的数据:type:"array",arrayKey:“a”,jsonKey:”b”,v本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态json解析的方法,其特征在于,包括以下步骤:根据需要解析的json写出解析规则;循环解析规则,根据解析参数取出需要的数据;获取需要的值。2.根据权利要求1所述的一种动态json解析的方法,其特征在于,所述根据需要解析的json写出解析规则,包括:构建取值规则的json数据,所述json数据是一个数组,所述数组的每个值代表的如何从json数据中取出键值对或者目标值。3.根据权利要求2所述的一种动态json解析的方法,其特征在于,所述数组包括type,arrayKey,jsonKey,value,key,其中,type:指定了取出值的类型,jsonKey为键...

【专利技术属性】
技术研发人员:瞿康宁
申请(专利权)人:四川启睿克科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1