本发明涉及数据处理,尤其涉及一种json数据处理方法、设备及存储介质。
背景技术:
1、javascript对象简谱(javascript object notation,json)是一种轻量级的数据交换格式,它基于ecmascript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
2、json数据类型分为key和value,key是字符串类型,value可以包含布尔类型(bool)、数字类型、字符串类型、数组类型以及对象类型,当json数据包括字符串类型、布尔类型(bool)、数字类型、字符串类型、数组类型以及对象类型时,可以直接对json数据进行数据处理生成字符串,但是当json数据中存在表达式(例如,加减乘除运算、布尔类型运算、条件判断(if-else)和方法调用等)时,必须对json数据进行单独编码然后再对json数据中存在表达式进计算,进而得到json数据的运行结果,对json数据进行单独编码效率低下且容易出错,使得json数据转换的效率极低。因此,如何高效且准确地对json数据进行运算生成字符串是目前亟待解决的问题。
技术实现思路
1、本发明实施例在于提供一种json数据处理方法、设备及存储介质,旨在提高json数据运算生成字符串的效率和准确性。
2、第一方面,本发明实施例提供一种json数据处理方法,包括:获取json数据,并生成所述json数据的抽象语法树,所述抽象语法树包括至少一个节点;根据所述json数据对所述抽象语法树的每个节点赋予表达式,生成目标抽象语法树,所述目标抽象语法树的每个节点包括一个表达式;执行所述目标抽象语法树上每个节点对应的表达式生成json对象,并将所述json对象转换为字符串。
3、第二方面,本发明实施例还提供一种终端设备,所述终端设备包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现如本发明说明书提供的任一项json数据处理方法的步骤。
4、第三方面,本发明实施例还提供一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如本发明说明书提供的任一项json数据处理的方法的步骤。
5、本发明实施例提供一种json数据处理方法、设备及存储介质,本发明实施例通过获取json数据,并生成json数据的抽象语法树,抽象语法树包括至少一个节点;根据json数据对抽象语法树的每个节点赋予表达式,生成目标抽象语法树,目标抽象语法树的每个节点包括一个表达式;执行目标抽象语法树上每个节点对应的表达式生成json对象,并将json对象转换为字符串。本方案通过生成json数据的抽象语法树,并对该抽象语法树上的每个节点赋予表达式,准确地得到目标抽象语法树,并执行该目标抽象语法树上的每个节点对应的表达式,能够准确地得到json对象,将json对象转换为字符串,极大地提高了json数据运算生成字符串的效率和准确性。
1.一种json数据处理方法,其特征在于,包括:
2.根据权利要求1所述的json数据处理方法,其特征在于,所述生成所述json数据的抽象语法树,包括:
3.根据权利要求2所述的json数据处理方法,其特征在于,所述根据所述json数据对所述抽象语法树的每个节点赋予表达式,生成目标抽象语法树,包括:
4.根据权利要求1所述的json数据处理方法,其特征在于,所述执行所述目标抽象语法树上每个节点对应的表达式生成json对象,包括:
5.根据权利要求4所述的json数据处理方法,其特征在于,所述预设语法树运算规则包括:自顶向下和自左向右的语法树运算规则。
6.根据权利要求4所述的json数据处理方法,其特征在于,所述获取各所述表达式对应的函数,包括:
7.根据权利要求1所述的json数据处理方法,其特征在于,所述将所述json对象转换为字符串,包括:
8.根据权利要求1-7中任一项所述的json数据处理方法,其特征在于,所述表达式包括json结构体表达式和数据参数表达式。
9.一种终端设备,其特征在于,所述终端设备包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一项所述的json数据处理方法的步骤。
10.一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至8中任一项所述的json数据处理方法的步骤。