System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,尤其涉及一种json合并方法、装置、电子设备及存储介质。
技术介绍
1、随着云计算技术的快速发展,以及对数据智能分析的需求飙升,数据处理面临着巨大挑战。
2、鉴于此,提出了一种轻量级的数据交换格式,例如,js对象简谱(javascriptobject notation,json),它具有简洁的语法和灵活的自描述能力,被广泛应用于各互联网业务。
3、在数据处理过程中,往往需要对两个json数据进行合并,从而满足不同的业务处理流程、不同差异的需求。目前,针对两个json数据进行合并时,主要采用全量覆盖合并的方式,即两个json数据中相同的键只会全部保留较新的值或全部保留较老的值。然而,这种方式较为单一,如果json数据中的每个键值对都有不同的取舍需求,该合并方式并不能适用。
技术实现思路
1、本申请提供了一种json合并方法、装置、电子设备及存储介质,用以提高json数据合并的适用性。
2、第一方面,提供一种json合并方法,包括:
3、获取待合并的第一json数据和第二json数据;其中,所述第一json数据中包括有n个第一key,所述第二json数据中包括有m个第二key,所述n和所述m均为大于0的整数;
4、根据所述第一json数据中当前的第一目标key,在合并策略集合中进行查询,确定是否有所述第一目标key的目标合并策略;其中,所述第一目标key为所述n个第一key中的任意一个;
5、若
6、若否,则根据配置的默认合并策略,对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第二合并操作。
7、可选的,所述合并策略集合中包括以下至少一种合并策略:
8、选取所述第一json数据中key对应的value;
9、选取所述第二json数据中key对应的value;
10、所述第一json数据和所述第二json数据中相同的key,选取所述第一json数据中key对应的value,不同的key取并集;
11、所述第一json数据和所述第二json数据中相同的key,选取所述第二json数据中key对应的value,不同的key取并集;
12、将所述第一json数据中key所在的数组与所述第二json数据中key所在的数组进行拼接;
13、按照template语法合并所述第一json数据和所述第二json数据。
14、可选的,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
15、当所述目标合并策略为选取所述第一json数据中key对应的value时,将所述第二目标key对应的第二value替换成所述第一value;或者当所述目标合并策略为选取所述第二json数据中key对应的value时,将所述第一目标key对应的第一value替换成所述第二value。
16、可选的,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
17、当所述目标合并策略为所述第一json数据和所述第二json数据中相同的key,选取所述第一json数据中key对应的value,不同的key取并集时,若确定出所述第一目标key与所述第二目标key相同,则将所述第二目标key对应的第二value替换成所述第一value,否则,将所述第一目标key和所述第一value,以及所述第二目标key和所述第二value均保留;或者当所述目标合并策略为所述第一json数据和所述第二json数据中相同的key,选取所述第二son数据中key对应的value,不同的key取并集时,若确定出所述第一目标key与所述第二目标key相同,则将所述第一目标key对应的第一value替换成所述第二value,否则,将所述第一目标key和所述第一value,以及所述第二目标key和所述第二value均保留。
18、可选的,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
19、当所述目标合并策略为将所述第一json数据中key所在的数组与所述第二json数据中key所在的数组进行拼接时,获取所述第一目标key在所述第一json数据所在的第一数组,以及所述第二目标key在所述第二json数据中所在的第二数组,并将所述第一数组与所述第二数组合并成一个数组;或者
20、当所述目标合并策略为按照template语法合并所述第一json数据和所述第二json数据时,按照所述template语法定义的语法规则,合并所述第一目key对应的第一value与所述第二目标key对应的第二value。
21、可选的,所述获取待合并的第一json数据和第二json数据之后,还包括:
22、分别对所述第一json数据和所述第二json数据进行预处理,得到预处理后的第一json数据,以及预处理后的第二json数据;
23、其中,所述预处理后的第一json数据中至少包括所述n个第一key各自对应的路径、value、是否定义value,所述预处理后的第二json数据中至少包括所述m个第二key各自对应的路径、value、是否定义value。
24、本申请实施例中,由于获取待合并的第一json数据和第二json数据后,可根据该第一json数据中当前的第一目标key,在合并策略集合中进行查询,若查询到该第一目标key的目标合并策略,则可直接采用该目标合并策略,针对性的对该第一目key对应的第一value与该第二目标key对应的第二value执行第一合并操作,因此相较于现有技术,支持自定义键值对的合并策略,可满足复杂关系的json数据之间的合并,提高了json数据合并的适用性;进一步,若未查询到该第一目标key的目标合并策略,则可采用配置的默认合并策略,对该第一目key对应的第一value与第二目标key对应的第二value执行第二合并操作,对未指定合并策略的键值对添加默认合并策略,使得合并后的数据更为简洁。
25、第二方面,提供一种json合并装置,包括:
26、数据获取模块,用于获取待合并的第一json数据和第二json数据;其中,所述第一json数据中包括有n个第一key,所述第二json数据中包括有m个第二key,所述n和所述m均为大于0的整数;
27、遍历模块,用于根据所述第一json数据中当前的第一目标key,在合并策略集合中进行查询,确定是否有所述第一目标ke本文档来自技高网...
【技术保护点】
1.一种JSON合并方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述合并策略集合中包括以下至少一种合并策略:
3.如权利要求2所述的方法,其特征在于,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
4.如权利要求2所述的方法,其特征在于,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
5.如权利要求2所述的方法,其特征在于,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
6.如权利要求1-5任一项所述的方法,其特征在于,所述获取待合并的第一JS对象简谱JSON数据和第二JSON数据之后,还包括:
7.一种JSON合并装置,其特征在于,包括:
8.如权利要求7所述的装置,其特征在于,其特征在于,所述合并策略集合中包括以下至少一种合并策略:
9.一种电子设备,其特征在于,包括:
...
【技术特征摘要】
1.一种json合并方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述合并策略集合中包括以下至少一种合并策略:
3.如权利要求2所述的方法,其特征在于,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
4.如权利要求2所述的方法,其特征在于,所述对所述第一目key对应的第一value与所述第二目标key对应的第二value执行第一合并操作,包括:
5.如权利要求2所述的方法,其特征在于,所述对所述第一目key对应的第一value与所述第二目标k...
【专利技术属性】
技术研发人员:黄虹,鲍立焕,高伟,周明伟,
申请(专利权)人:浙江大华技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。