本发明涉及数据库,尤其涉及一种复合数组的解析方法、装置、设备及存储介质。
背景技术:
1、在数据库产品中,用户往往需要通过编程接口对于数据库中数据进行处理,在sql层面接受返回数据。在多数情况下,用户可以较容易的通过编程接口获取简单的单一数据,例如int、double与text数据。
2、但是对于复合数组数据,用户往往较难从sql中直接获取。在传统的数据库的使用过程中,往往会忽视这个问题;而且从编程角度思考,sql直接通过接口获取复合类型的数组数据也是无法实现的。
技术实现思路
1、本发明提供了一种复合数组的解析方法、装置、设备及存储介质,以解决从sql数据库直接读取复合类型的数组数据的问题。
2、根据本发明的一方面,提供了一种复合数组的解析方法,包括:
3、获取复合类型的输入数组;
4、按照预设数据格式对所述输入数组的数组行数和各行数组数据进行数据类型转换和封装处理,得到待解析字符串;
5、根据所述待解析字符串的数组行数分配数组内存空间,并按照所述数组内存空间对所述待解析字符串进行解析得到输出数组。
6、进一步的,所述预设数据格式包括头部和尾部;所述头部用于存放所述输入数组的数组行数;所述尾部用于存储所述输入数组的各行数组数据,每一行数组数据包括:数据长度和数据信息。
7、进一步的,按照预设数据格式对所述输入数组的数组行数和各行数组数据进行数据类型转换和封装处理,得到待解析字符串,包括:
8、为所述待解析字符串的头部分配头部字符串内存空间;
9、将所述输入数组的数组行数转换为数组行数字符串,并将所述数组行数字符串写入所述头部字符串内存空间,获得头部字符串;
10、为所述待解析字符串的尾部分配尾部字符串内存空间;
11、将所述输入数组的各行数组数据分别转换为数组数据字符串,并将各所述数组数据字符串依次写入所述尾部字符串内存空间,获得尾部字符串;
12、对所述头部字符串和所述尾部字符串进行封装,得到待解析字符串。
13、进一步的,所述尾部字符串内存空间包括:每个数组数据对应的字符串内存空间;为所述待解析字符串的尾部分配尾部字符串内存空间包括:
14、对于所述输入数组中每一行数组数据,根据所述数组数据中的每个数据信息的长度为所述数据信息分配字符串内存空间。
15、进一步的,所述数组内存空间包括:所述数组行数内存空间和数组数据内存空间;根据所述待解析字符串的数组行数分配数组内存空间,包括:
16、通过字符串分割函数分割出所述待解析字符串的头部字符串,获得数组行数字符串;
17、根据所述数组行数字符串分配数组行数内存空间;
18、将所述数组行数字符串转换为整数类型数据,并将所述整数类型数据写入所述数组行数内存空间得到数组行数;
19、根据所述数组行数为输出数组分配数组数据内存空间。
20、进一步的,按照所述数组内存空间对所述待解析字符串进行解析得到输出数组,包括:
21、解析所述待解析字符串的尾部字符串得到每一行数组数据;
22、将每一行数组数据转换为预设类型的输出数组数据,并将各所述输出数组数据依次写入所述数组数据内存空间,得到输出数组。
23、进一步的,解析所述待解析字符串的尾部字符串得到每一行数组数据,包括:
24、依次读取所述待解析字符串的尾部字符串中的每一行数组数据字符串;
25、获取每一行数组数据字符串中数据长度和数据信息。
26、根据本发明的另一方面,提供了一种复合数组的解析装置,包括:
27、获取模块,用于获取复合类型的输入数组;
28、封装模块,用于按照预设数据格式对所述输入数组的数组行数和各行数组数据进行数据类型转换和封装处理,得到待解析字符串;
29、解析模块,用于根据所述待解析字符串的数组行数分配数组内存空间,并按照所述数组内存空间对所述待解析字符串进行解析得到输出数组。
30、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
31、至少一个处理器;以及
32、与所述至少一个处理器通信连接的存储器;其中,
33、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的复合数组的解析方法。
34、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的复合数组的解析方法。
35、本发明实施例的技术方案,通过获取复合类型的输入数组;按照预设数据格式对输入数组的数组行数和各行数组数据进行封装处理,得到待解析字符串;根据待解析字符串的数组行数分配数组内存空间,并按照数组内存空间对待解析字符串进行解析得到输出数组。通过在c语言处理层将复合类型的输入数组转换为单一类型的待解析字符串;在sql语言处理层对单一类型的待解析字符串进行一步解析获得输出数组,解决了无法从sql中直接获取复合数组数据的问题,取到了便于直接获取复合数组数据的有益效果。
36、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种复合数组的解析方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预设数据格式包括头部和尾部;所述头部用于存放所述输入数组的数组行数;所述尾部用于存储所述输入数组的各行数组数据,每一行数组数据包括:数据长度和数据信息。
3.根据权利要求2所述的方法,其特征在于,按照预设数据格式对所述输入数组的数组行数和各行数组数据进行数据类型转换和封装处理,得到待解析字符串,包括:
4.根据权利要求3所述的方法,其特征在于,所述尾部字符串内存空间包括:每个数组数据对应的字符串内存空间;为所述待解析字符串的尾部分配尾部字符串内存空间包括:
5.根据权利要求1所述的方法,其特征在于,所述数组内存空间包括:所述数组行数内存空间和数组数据内存空间;根据所述待解析字符串的数组行数分配数组内存空间,包括:
6.根据权利要求5所述的方法,其特征在于,按照所述数组内存空间对所述待解析字符串进行解析得到输出数组,包括:
7.根据权利要求6所述的方法,其特征在于,解析所述待解析字符串的尾部字符串得到每一行数组数据,包括:
8.一种复合数组的解析装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的复合数组的解析方法。
