本技术涉及数据处理,特别是涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术:
1、在系统间持续传递大量数据时,通常都会使用中间件mq(message queue,消息队列)。mq消息队列作为一种异步通信机制,能够有效地解耦系统间的依赖关系,提高系统的可扩展性和可靠性。在使用mq消息队列传输消息时,通常会使用json之类的可读性较好的报文格式。json(javascript object notation,javascript对象表示法)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
2、然而,json格式占用空间比较大,影响数据存储和网络传输效率。
技术实现思路
1、有鉴于此,本技术旨在提出一种数据处理方法、装置、电子设备及存储介质,解决当前消息传输时,使用的json格式,占用空间比较大,影响数据存储和网络传输效率的问题,具体技术方案如下:
2、依据本技术的第一方面,提供了一种数据处理方法,所述方法包括:
3、获取待传输的第一json数据,所述第一json数据包括至少一个键值对,所述键值对中包括所述第一json数据的键字段名和键字段值;
4、通过所述键值对,获取所述第一json数据的第一模板数据;
5、将所述第一模板数据保存至消息队列,并为所述第一模板数据生成第一模板标识;
6、获取所述第一模板数据中键字段名的保存顺序,并按照所述保存顺序从所述键值对中获取键字段值;
7、对所述键字段值进行压缩转换,获取二进制字节流;
8、将所述第一模板标识和所述二进制字节流作为目标传输数据,进行传输。
9、可选的,所述通过所述键值对,获取所述第一json数据的第一模板数据,包括:
10、通过所述键字段值,确定所述键值对中所述键字段值对应的字段类型,字段值类型,精度值,偏移量和长度值,其中,字段类型包括数组类型,对象类型和常规字段类型中的至少一种,所述字段值类型包括数字类型,日期类型,字符串类型和布尔值类型中的至少一种;
11、通过所述键字段名,所述键字段值对应的字段类型,所述字段值类型,所述精度值,所述偏移量和所述长度值,获取所述第一json数据的第一模板数据。
12、可选的,所述通过所述键字段值,确定所述键值对中所述键字段值对应的字段类型,字段值类型,精度值,偏移量和长度值,包括:
13、获取所述键字段值的数值表现方式;
14、通过所述数值表现方式确定所述键值对中所述键字段值对应的字段类型和字段值类型;
15、在确定所述键字段值的数值表现方式为数字类型的情况下,通过所述键字段值确定所述键值对中所述键字段值对应的精度值和偏移量;
16、通过所述键字段值,所述精度值,所述偏移量,所述键字段值的数值表现方式,确定所述键值对中所述键字段值对应的长度值。
17、可选的,所述通过所述数值表现方式确定所述键值对中所述键字段值对应的字段类型和字段值类型,包括:
18、通过所述数值表现方式确定所述键值对中所述键字段值对应的字段值类型;
19、在确定所述键字段值的数值表现方式中包括中括号的情况下,确定所述键值对中所述键字段值对应的字段类型为数组类型;
20、在确定所述键字段值的数值表现方式中包括大括号的情况下,确定所述键值对中所述键字段值对应的字段类型为对象类型;
21、在确定所述键字段值的数值表现方式中不包括中括号和大括号的情况下,确定所述键值对中所述键字段值对应的字段类型为常规字段类型。
22、可选的,所述对所述键字段值进行压缩转换,获取二进制字节流,包括:
23、在确定所述键字段值的数值表现方式为数字类型的情况下,通过所述键字段值对应的精度值和偏移量对所述键字段值进行压缩转换,获取二进制字节流;
24、在确定所述键字段值的数值表现方式为日期类型和字符串类型的情况下,通过第一预设编码策略将所述键字段值转换为二进制字节流;
25、在确定所述键字段值的数值表现方式为布尔值类型的情况下,通过第二预设编码策略将所述键字段值转换为二进制字节流。
26、可选的,在所述将所述第一模板标识和所述二进制字节流作为目标传输数据,进行传输之后,包括:
27、获取待传输的第二json数据和所述第二json数据的键值对;
28、通过所述第二json数据的键值对,获取所述第二json数据的第二模板数据;
29、将所述第一模板数据和所述第二模板数据进行比对;
30、若完全一致,则将所述第一模板标识设置为所述第二模板数据的模板标识;
31、若不完全一致,则为所述第二模板数据生成第二模板标识。
32、可选的,在所述将所述第一模板标识和所述二进制字节流作为目标传输数据,进行传输之后,还包括:
33、在确定接收到所述目标传输数据的情况下,通过所述目标传输数据携带的第一模板标识获取所述第一json数据的第一模板数据;
34、通过所述第一模板数据获取所述第一json数据的键字段名;
35、通过所述第一模板数据对所述目标传输数据携带的二进制字节流中的字节进行提取,得到目标字节组合;
36、按照预设解码策略对所述目标字节组合进行解码,获取第一json数据的键字段值;
37、将所述键字段名和所述键字段值进行组合,获取第一json数据。
38、依据本技术的第二方面,提供了一种数据处理装置,所述装置包括:
39、第一获取模块,用于获取待传输的第一json数据,所述第一json数据包括至少一个键值对,所述键值对中包括所述第一json数据的键字段名和键字段值;
40、第二获取模块,用于通过所述键值对,获取所述第一json数据的第一模板数据;
41、第一生成模块,用于将所述第一模板数据保存至消息队列,并为所述第一模板数据生成第一模板标识;
42、第三获取模块,用于获取所述第一模板数据中键字段名的保存顺序,并按照所述保存顺序从所述键值对中获取键字段值;
43、第四获取模块,用于对所述键字段值进行压缩转换,获取二进制字节流;
44、传输模块,用于将所述第一模板标识和所述二进制字节流作为目标传输数据,进行传输。
45、依据本技术的又一方面,还提供一种电子设备,处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
46、所述存储器,用于存放计算机程序;
47、所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1-7任一项所述数据处理方法。
48、依据本技术的又一方面,还提供一种可读存储介质,所述可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法的步骤。
49、依据本技术的又一方面,还提供一种车辆,包括:上述数据处理装置。
50、本技术提供的数据处理方法,获取待传输的第一json数据,第一json数据包括至少一个键值对,键值对中包括第一json数据的键字段名和键字段值,通过键值对,获取第一json数据的第一模板数据,将第一模板数据保存至消息队列,并为第一模板数据生成第一模板标识,通过将第一json数据中的模板数据提取出来,便于后续传输时减小数据存储的占用空间,同时也可以根据模板数据提取需要传输的数据,获取第一模板数据中键字段名的保存顺序,并按照保存顺序从键值对中获取键字段值,对键字段值进行压缩转换,获取二进制字节流,通过对键字段值进行压缩转换,进一步减少数据存储的占用空间,同时提升了网络传输效率,将第一模板标识和二进制字节流作为目标传输数据,进行传输。本技术通过将第一json数据中的第一模板数据提取出来不进行传输,而是传输第一模板标识,减小了消息传输时的占用空间,提升了网络传输效率,同时还会对第一json数据中的键字段值进行压缩转换,进一步减小了消息传输时的占用空间,提升了网络传输效率。
51、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其他目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。