CN112416356A - Json字符串的处理方法、装置、设备及存储介质 - Google Patents

Json字符串的处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112416356A
CN112416356A CN202011263928.0A CN202011263928A CN112416356A CN 112416356 A CN112416356 A CN 112416356A CN 202011263928 A CN202011263928 A CN 202011263928A CN 112416356 A CN112416356 A CN 112416356A
Authority
CN
China
Prior art keywords
processing
instruction
character string
program code
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011263928.0A
Other languages
English (en)
Inventor
黄柯
孟德斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202011263928.0A priority Critical patent/CN112416356A/zh
Publication of CN112416356A publication Critical patent/CN112416356A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Abstract

本申请提供了一种JSON字符串的处理方法、装置、设备及存储介质,属于互联网技术领域。所述方法包括:获取JSON字符串及针对所述JSON字符串输入的指令序列,所述指令序列包括至少一条处理指令;从参考指令集中获取所述至少一条处理指令对应的程序代码,所述参考指令集中包括多个参考指令对应的程序代码;通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据。上述方法能够提高从JSON字符串中提取数据的效率。

Description

JSON字符串的处理方法、装置、设备及存储介质
技术领域
本申请涉及互联网技术领域,特别涉及一种JSON字符串的处理方法、装置、设备及存储介质。
背景技术
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式,其包括对象和数组两种数据结构,通过这两种数据结构能够表示各种复杂的数据。并且,JSON易于阅读,也易于机器解析和生成。
在获取到JSON字符串时,通常需要从其中提取关注的目标数据。相关技术中,一般通过运行程序代码从JSON字符串中提取目标数据,然而,由于JSON字符串中数据结构的层级较多,导致该程序代码非常复杂,开发该程序代码的周期长,从而导致数据提取的效率低。
发明内容
本申请实施例提供了一种JSON字符串的处理方法、装置、设备及存储介质,能够提高从JSON字符串中提取数据的效率。所述技术方案如下:
一方面,提供了一种JSON字符串的处理方法,所述方法包括:
获取JSON字符串及针对所述JSON字符串输入的指令序列,所述指令序列包括至少一条处理指令;
从参考指令集中获取所述至少一条处理指令对应的程序代码,所述参考指令集中包括多个参考指令对应的程序代码;
通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据。
在一种可能的实现方式中,所述处理指令中包括指令标识符,所述参考指令集中包括多个指令标识符对应的程序代码;
所述从参考指令集中获取所述至少一条处理指令对应的程序代码,包括:
从所述参考指令集中获取所述至少一条处理指令中的指令标识符对应的程序代码。
在另一种可能的实现方式中,所述指令序列包括多条处理指令,所述通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据,包括:
按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码依次对所述JSON字符串进行处理,得到所述目标数据。
在另一种可能的实现方式中,所述处理指令包括指令标识符和元素标识,所述按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述JSON字符串进行处理,得到所述目标数据,包括:
从所述JSON字符串中,查询第一条处理指令中的元素标识对应的第一元素字符串,通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素字符串进行处理,得到第一处理数据;
从所述第一处理数据中,查询第二条处理指令中的元素标识对应的第二元素字符串,通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素字符串进行处理,得到第二处理数据,直到通过最后一条处理指令中的指令标识符对应的程序代码进行处理后,得到所述目标数据。
在另一种可能的实现方式中,所述通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素字符串进行处理,得到第一处理数据,包括:
对所述第一元素字符串进行反序列化处理,得到第一元素,通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素进行处理,得到所述第一处理数据;
所述通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素字符串进行处理,得到第二处理数据,包括:
对所述第二元素字符串进行反序列化处理,得到第二元素,通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素进行处理,得到所述第二处理数据。
在另一种可能的实现方式中,所述按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述JSON字符串进行处理,得到所述目标数据,包括:
根据所述JSON字符串,生成目标多叉树,所述目标多叉树的节点包括所述JSON字符串中的元素字符串,且所述元素字符串由所述节点的下层节点包括的元素字符串组成;
按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述目标多叉树进行处理,得到所述目标数据。
在另一种可能的实现方式中,所述处理指令包括指令标识符和元素标识,所述按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述目标多叉树进行处理,得到所述目标数据,包括:
从所述目标多叉树的第一层子节点中搜索第一条处理指令中的元素标识对应的第一节点,通过所述第一条处理指令中的指令标识符对应的程序代码,从所述目标多叉树中截取第一多叉树,所述第一多叉树的根节点为所述第一节点;
从所述第一多叉树中的第一层子节点中搜索第二条处理指令中的元素标识对应的第二节点,通过所述第二条处理指令中的指令标识符对应的程序代码,从所述第一多叉树中截取第二多叉树,所述第二多叉树的根节点为所述第二节点,直到通过最后一条处理指令中的指令标识符对应的程序代码截取后,将截取到的多叉树的第一层子节点包括的元素字符串确定为所述目标数据。
在另一种可能的实现方式中,所述指令序列中包括第一提取指令,所述第一提取指令包括第一指令标识符和至少两个元素标识;
所述通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据,包括:
从所述JSON字符串中获取所述至少两个元素标识对应的元素字符串,通过所述第一指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据;
其中,所述至少两个元素字符串之间为继承关系。
在另一种可能的实现方式中,所述指令序列中还包括第二提取指令,所述参考指令集中不包括所述第二提取指令对应的程序代码,所述方法还包括:
从所述第二提取指令中获取程序代码。
在另一种可能的实现方式中,所述从参考指令集中获取所述至少一条处理指令对应的程序代码,包括:
对所述指令序列进行语法检查,在语法检查通过的情况下,从所述参考指令集中获取所述至少一条处理指令对应的程序代码。
另一方面,提供了一种JSON字符串的处理装置,所述装置包括:
指令序列获取模块,被配置为获取JSON字符串及针对所述JSON字符串输入的指令序列,所述指令序列包括至少一条处理指令;
程序代码获取模块,被配置为从参考指令集中获取所述至少一条处理指令对应的程序代码,所述参考指令集中包括多个参考指令对应的程序代码;
数据处理模块,被配置为通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据。
在一种可能的实现方式中,所述处理指令中包括指令标识符,所述参考指令集中包括多个指令标识符对应的程序代码;
所述程序代码获取模块,被配置为从所述参考指令集中获取所述至少一条处理指令中的指令标识符对应的程序代码。
在另一种可能的实现方式中,所述指令序列包括多条处理指令,
所述数据处理模块,被配置为按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码依次对所述JSON字符串进行处理,得到所述目标数据。
在另一种可能的实现方式中,所述处理指令包括指令标识符和元素标识,所述数据处理模块,包括:
第一查询单元,被配置为从所述JSON字符串中,查询第一条处理指令中的元素标识对应的第一元素字符串;
第一处理单元,被配置为通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素字符串进行处理,得到第一处理数据;
第二查询单元,被配置为从所述第一处理数据中,查询第二条处理指令中的元素标识对应的第二元素字符串;
第二处理单元,被配置为通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素字符串进行处理,得到第二处理数据,直到通过最后一条处理指令中的指令标识符对应的程序代码进行处理后,得到所述目标数据。
在另一种可能的实现方式中,所述第一处理单元,被配置为对所述第一元素字符串进行反序列化处理,得到第一元素,通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素进行处理,得到所述第一处理数据;
所述第二处理单元,被配置为对所述第二元素字符串进行反序列化处理,得到第二元素,通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素进行处理,得到所述第二处理数据。
在另一种可能的实现方式中,所述数据处理模块,包括:
多叉树生成单元,被配置为根据所述JSON字符串,生成目标多叉树,所述目标多叉树的节点包括所述JSON字符串中的元素字符串,且所述元素字符串由所述节点的下层节点包括的元素字符串组成;
多叉树处理单元,被配置为按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述目标多叉树进行处理,得到所述目标数据。
在另一种可能的实现方式中,所述处理指令包括指令标识符和元素标识,
所述多叉树处理单元,被配置为从所述目标多叉树的第一层子节点中搜索第一条处理指令中的元素标识对应的第一节点,通过所述第一条处理指令中的指令标识符对应的程序代码,从所述目标多叉树中截取第一多叉树,所述第一多叉树的根节点为所述第一节点;从所述第一多叉树中的第一层子节点中搜索第二条处理指令中的元素标识对应的第二节点,通过所述第二条处理指令中的指令标识符对应的程序代码,从所述第一多叉树中截取第二多叉树,所述第二多叉树的根节点为所述第二节点,直到通过最后一条处理指令中的指令标识符对应的程序代码截取后,将截取到的多叉树的第一层子节点包括的元素字符串确定为所述目标数据。
在另一种可能的实现方式中,所述指令序列中包括第一提取指令,所述第一提取指令包括第一指令标识符和至少两个元素标识;
所述数据处理模块,被配置为从所述JSON字符串中获取所述至少两个元素标识对应的元素字符串,通过所述第一指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据;其中,所述至少两个元素字符串之间为继承关系。
在另一种可能的实现方式中,所述指令序列中还包括第二提取指令,所述参考指令集中不包括所述第二提取指令对应的程序代码,
所述程序代码获取模块,还被配置为从所述第二提取指令中获取程序代码。
在另一种可能的实现方式中,所述程序代码获取模块,还被配置为对所述指令序列进行语法检查,在语法检查通过的情况下,从所述参考指令集中获取所述至少一条处理指令对应的程序代码。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现上述任一种可能实现方式中的JSON字符串的处理方法中执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现上述任一种可能实现方式中的JSON字符串的处理方法中执行的操作。
另一方面,提供了一种计算机程序产品,所述计算机程序产品中包括至少一条程序代码,所述程序代码由处理器加载并执行以实现上述任一种可能实现方式中的JSON字符串的处理方法中执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例提供的技术方案中,通过参考指令集存储多个处理指令对应的程序代码,使得对JSON字符串进行处理时,不必编写程序代码,而仅需要输入简单的指令序列,即能够从参考指令集获取到对应的程序代码,来对JSON字符串进行处理,如此便节省了程序代码的开发时间,提高从JSON字符串中提取数据的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种JSON字符串的处理方法的流程图;
图3是本申请实施例提供的一种由JSON字符串生成的多叉树的示意图;
图4是本申请实施例提供的一种JSON字符串的处理装置的框图;
图5是本申请实施例提供的一种终端的结构示意图;
图6是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请所使用的术语“第一”、“第二”、第三”、第四”、第五”、第六”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一节点称为节点,且类似地,可将第二节点称为第一节点。
本申请所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个节点包括3个节点,而每个是指这3个节点中的每一个节点,任一是指这3个节点中的任意一个,可以是第一个,可以是第二个、也可以是第三个。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101和服务器102。终端101和服务器102之间通过无线或者有线网络连接。可选地,终端101为电脑、手机、平板电脑或者其他终端。可选地,服务器102为该目标应用的后台服务器或者为提供云计算以及云存储等服务的云服务器。
可选地,服务器102存储有参考指令集,该参考指令集是在服务器102生成的,或者是其他终端生成后上传到服务器102的,终端102从服务器下载该参考指令集后,在获取到JSON字符串以及针对该JSON字符串输入的指令序列后,能够根据该指令序列和参考指令集对该JSON字符串进行处理,得到目标数据。
本申请提供的JSON字符串的处理方法能够应用于任何数据处理的场景下,例如,对日志进行处理的场景。若该日志为JSON字符串格式,则能够通过本申请实施例提供的方法,对该日志进行处理,以从日志中提取到关注的目标数据。又如,对网页数据进行处理的场景。若该网页数据为JSON字符串格式,则能够通过本申请实施例提供的方法,对该网页数据进行解析,得到目标数据后,进行目标数据的展示。
图2是本申请实施例提供的一种JSON字符串的处理方法的流程图。在该方法实施例中,以执行主体为终端为例进行说明。参见图2,该方法包括:
201:终端获取JSON字符串及针对JSON字符串输入的指令序列,指令序列包括至少一条处理指令。
JSON字符串指的是符合JSON格式要求的字符串,JSON字符串包括两种数据结构。一种是对象,对象是一个无序的“key(关键字)/value(键值)”对集合。花括号表示一个对象,花括号中的每个关键字和键值之间为冒号,键值对之间为逗号,例如,对象为{关键字1:键值1,关键字2:键值2,关键字3:键值3}。另一种是数组,数组由有序的键值构成。方括号表示一个数组,例如,[键值1,键值2,键值3]。其中,对象和数组中的键值包括字符串、数值、true(真)、false(假)、null(空)、对象或数组等。
指令序列中包括的处理指令为一个或多个,在处理指令为多个的情况下,多个处理指令按照顺序排列。例如,指令序列为“处理指令1,处理指令2,处理指令3”。该指令序列为针对JSON字符串输入的,用于从JSON字符串提取关注的目标数据。在JSON字符串不同的情况下,输入的指令序列可能相同也可能不同。
可选地,处理指令用于指示对JSON字符串进行对应的处理操作,可选地,处理指令中包括指令标识符,该指令标识符用于区分不同的处理指令。可选地,处理指令还包括元素标识,该元素标识用于区分不同的元素。可选地,元素包括对象、数组、键值对等,相应的,元素标识包括对象标识、数组标识、关键字等。
可选地,终端获取JSON字符串的实现方式为:终端接收服务器或者其他终端发送的JSON字符串,或者,终端从本地获取JSON字符串,本申请实施例对此不做限制。
202:终端从参考指令集中获取至少一条处理指令对应的程序代码。
参考指令集中包括多个参考指令对应的程序代码。其中,不同参考指令对应不同的程序代码,该程序代码用于执行该参考指令对应的处理操作。例如,参考指令集中包括用于进行提取操作的参考指令、用于进行转换操作的参考指令、用于进行过滤操作的参考指令、用于进行逻辑计算操作的参考指令、用于进行数字运算操作的参考指令等。可选地,每个参考指令对应的程序代码为数据处理人员根据参考指令对应的处理操作所编写的。并且,参考指令集中的指令标识符和对应的程序代码均能够根据需要设置或更改。
可选地,处理指令中包括指令标识符,参考指令集中包括多个指令标识符对应的程序代码。相应的,终端从参考指令集中获取至少一条处理指令对应的程序代码,包括:终端从参考指令集中获取至少一条处理指令中的指令标识符对应的程序代码。
参考表1,表1中列举了参考指令集中的处理指令对应的指令标识符及处理指令的描述。需要说明的一点是,其中的指令标识符和指令描述仅是示例性说明,本申请实施例对此不做限制。
表1
Figure BDA0002775515580000091
Figure BDA0002775515580000101
在一种可能的实现方式中,终端从参考指令集中获取至少一条处理指令对应的程序代码,包括:终端对指令序列进行语法检查,在语法检查通过的情况下,从参考指令集中获取至少一条处理指令对应的程序代码。其中,语法检查包括检查指令序列的合法性和可执行性,合法性是指符合指令序列的语法格式。如此,能够避免根据该指令序列对JSON字符串进行处理时出错,提高从JSON字符串中提取目标数据的效率。
在一种可能的实现方式中,指令序列中还包括第二提取指令,参考指令集中不包括第二提取指令对应的程序代码,相应的,终端从第二提取指令中获取程序代码。如此,即使参考指令集中不包括用于对JSON字符串执行某些特定操作的参考指令,也能够从输入的第二提取指令中获取到对应的程序代码来实现特定操作,从而提高了对JSON字符串进行数据处理的灵活性。
需要说明的一点是,从参考指令集中获取至少一条处理指令对应的程序代码实际上为指令序列的编译过程,也即是,终端要根据参考指令集对输入的指令序列进行编译,将输入指令转换为程序代码。可选地,参考指令集中的程序代码为高级语言对应的程序代码,则终端将指令序列编译为该程序代码后,还需要再将该程序代码编译为计算机的处理器能够直接运行的字节码。
203:终端通过获取到的至少一条程序代码,对JSON字符串进行处理,得到目标数据。
在一种可能的实现方式中,指令序列包括多条处理指令,相应的,通过获取到的至少一条程序代码,对JSON字符串进行处理,得到目标数据,包括:终端按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码依次对JSON字符串进行处理,得到目标数据。
例如,终端通过第一条处理指令对应的程序代码对JSON字符串进行处理,得到第一处理数据后,再通过下一条处理指令对应的程序代码对该第一处理数据进行处理,以此类推,直到通过最后一条处理指令对应的程序代码处理后,得到目标数据。
在一种可能的实现方式中,处理指令包括指令标识符和元素标识,表示要对元素标识对应的元素字符串执行指令标识符对应的处理操作。相应的,终端按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对JSON字符串进行处理,得到目标数据,包括:终端从JSON字符串中,查询第一条处理指令中的元素标识对应的第一元素字符串,通过第一条处理指令中的指令标识符对应的程序代码,对第一元素字符串进行处理,得到第一处理数据;终端从第一处理数据中,查询第二条处理指令中的元素标识对应的第二元素字符串,通过第二条处理指令中的指令标识符对应的程序代码,对第二元素字符串进行处理,得到第二处理数据,以此类推,直到通过最后一条处理指令中的指令标识符对应的程序代码进行处理后,得到目标数据。
例如,JSON字符串包括元素字符串A和元素字符串B,其中,元素字符串A由元素字符串C和元素字符串D构成,元素字符串B由元素字符串E和元素字符串F构成,元素字符串F由元素字符串G和元素字符串H构成,元素字符串G由元素字符串I构成,目标数据为元素字符串I,因此,为了从JSON字符串提取到该目标数据,指令序列包括3条处理指令,第一条处理指令包括第一提取指令标识符和元素字符串B的元素标识,第二条处理指令包括第二提取指令标识符和元素字符串F的元素标识,第三条处理指令包括第三提取指令标识符和元素字符串G的元素标识。
其中,第一条处理指令用于提取元素字符串B的键值,即元素字符串E和元素字符串F,第二条处理指令用于提取元素字符串F的键值,即元素字符串G和元素字符串H,第三条处理指令用于提取元素字符串G的键值,即元素字符串I。
相应的,终端对上述JSON字符串处理时,根据第一条处理指令中元素字符串B的元素标识,从JSON字符串中查询到元素字符串B,通过第一提取指令标识符对应的程序代码对元素字符串B进行处理,得到第一处理数据(元素字符串E和元素字符串F),然后,根据第二条处理指令中元素字符串F的元素标识,从第一处理数据中查询到元素字符串F,通过第二提取指令标识符对应的程序代码对元素字符串F进行处理,得到第二处理数据(元素字符串G和元素字符串H),然后,根据第三条处理指令中元素字符串G的元素标识,从第二处理数据中查询到元素字符串G,通过第三提取指令标识符对应的程序代码对元素字符串G进行处理,得到元素字符串I。
需要说明的一点是,在本申请实施例中,元素表示不同结构的数据,例如,元素包括对象、数组、键值对等,相应的,元素字符串包括对象字符串、数组字符串、键值对字符串等。
在一种可能的实现方式中,终端按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对JSON字符串进行处理的过程中,在通过每条处理指令对应的程序代码进行处理前,要先对该条处理指令对应的元素字符串进行反序列化处理,得到对应元素后,再对元素进行处理。
相应的,终端通过第一条处理指令中的指令标识符对应的程序代码,对第一元素字符串进行处理,得到第一处理数据,包括:终端对第一元素字符串进行反序列化处理,得到第一元素,通过第一条处理指令中的指令标识符对应的程序代码,对第一元素进行处理,得到第一处理数据。而终端通过第二条处理指令中的指令标识符对应的程序代码,对第二元素字符串进行处理,得到第二处理数据,包括:终端对第二元素字符串进行反序列化处理,得到第二元素,通过第二条处理指令中的指令标识符对应的程序代码,对第二元素进行处理,得到第二处理数据。
序列化是指将元素转换为元素字符串,例如,将对象转换为对象字符串、将数组转换为数组字符串。相应的,反序列化则是将元素字符串转换为元素的过程。例如,将对象字符串转换为对象,将数组字符串转换为数组。
在本申请实施例中,在按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对JSON字符串进行处理的过程中,不是对JSON字符串中所有的字符串进行反序列化处理,得到所有的元素后,再对其中处理指令对应的元素进行处理,而是仅对当前的处理指令对应的元素字符串进行反序列化处理,然后再通过该处理指令对得到的元素进行处理,如此,避免了对处理指令不相关的元素字符串进行反序列化的过程,从而提高了从JSON字符串中提取目标数据的效率。
在一种可能的实现方式中,终端按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对JSON字符串进行处理,得到目标数据,包括:终端根据JSON字符串,生成目标多叉树,目标多叉树的节点包括JSON字符串中的元素字符串,且元素字符串由该节点的下层节点包括的元素字符串组成;终端按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对目标多叉树进行处理,得到目标数据。
例如,JSON字符串包括元素字符串A和元素字符串B,其中,元素字符串A由元素字符串C和元素字符串D构成,元素字符串B由元素字符串E和元素字符串F构成,元素字符串F由元素字符串G和元素字符串H构成,元素字符串G由元素字符串I构成。参考图3,图3为根据该JSON字符串构成的目标多叉树,该目标多叉树的根节点为包括该JSON字符串的节点,该目标多叉树的第一层子节点有2个,分别为包括元素字符串A的节点和包括元素字符串B的节点。第二层子节点有4个,分别为包括元素字符串C的节点、包括元素字符串D的节点、包括元素字符串E的节点和包括元素字符串F的节点,第三层子节点有2个,分别为包括元素字符串G的节点和包括元素字符串H的节点,第四层子节点有1个,为包括元素字符串I的节点。
在本申请实施例中,考虑到JSON字符串的数据层级较多,将JSON字符串构造为多叉树,利用多叉树的结构从JSON字符串中提取目标数据,如此,能够提高数据提取的效率。
在一种可能的实现方式中,按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对目标多叉树进行处理,得到目标数据,包括:终端从目标多叉树的第一层子节点中搜索第一条处理指令中的元素标识对应的第一节点,通过第一条处理指令中的指令标识符对应的程序代码,从目标多叉树中截取第一多叉树,第一多叉树的根节点为第一节点;从第一多叉树中的第一层子节点中搜索第二条处理指令中的元素标识对应的第二节点,通过第二条处理指令中的指令标识符对应的程序代码,从第一多叉树中截取第二多叉树,第二多叉树的根节点为第二节点,直到通过最后一条处理指令中的指令标识符对应的程序代码截取后,将截取到的多叉树的第一层子节点包括的元素字符串确定为目标数据。
例如,指令序列包括3条处理指令,第一条处理指令包括第一提取指令标识符和元素字符串B的元素标识,第二条处理指令包括第二提取指令标识符和元素字符串F的元素标识,第三条处理指令包括第三提取指令标识符和元素字符串G的元素标识。相应的,参考图3,终端通过该指令序列对上述目标多叉树处理,包括:
终端根据第一条处理指令中元素字符串B的元素标识,从目标多叉树的第一层子节点中搜索包括元素字符串B的节点,通过第一提取指令标识符对应的程序代码,从目标多叉树中截取第一多叉树,该第一多叉树的根节点为包括元素字符串B的节点,第一层子节点有2个,分别为包括元素字符串E的节点和包括元素字符串F的节点。然后,终端根据第二条处理指令中元素字符串F的元素标识,从第一多叉树的第一层子节点中搜索包括元素字符串F的节点,通过第二提取指令标识符对应的程序代码,从第一多叉树中截取第二多叉树,该第二多叉树的根节点为包括元素字符串F的节点,第一层子节点有2个,分别为包括元素字符串G的节点和包括元素字符串H的节点。然后,终端根据第三条处理指令中元素字符串G的元素标识,从第二多叉树的第一层子节点中搜索包括元素字符串G的节点,通过第三提取指令标识符对应的程序代码,从第二多叉树中截取第三多叉树,该第三多叉树的根节点为包括元素字符串G的节点,第一层子节点有1个,为包括元素字符串I的节点,则获取的目标数据为元素字符串I。
在本申请实施例中,在将JSON字符串构造为目标多叉树后,利用广度优先搜索方法,即在目标多叉树的第一层子节点中搜索第一条处理指令中的元素标识对应的第一节点,然后再从第一多叉树的第一层子节点中搜索下一条处理指令中的元素标识对应的节点,由于第一多叉树的根节点为第一节点,且该第一节点与第一条处理指令中的元素标识对应,因此,下一条处理指令中的元素标识对应的节点必定在第一多叉树的第一层子节点中,从而通过上述搜素方法能够以较快的速度搜索到每条处理指令中的元素标识对应的节点,从而提高了从JSON字符串中提取目标数据的效率。
在一种可能的实现方式中,指令序列中包括第一提取指令,第一提取指令包括第一指令标识符和至少两个元素标识。相应的,终端通过获取到的至少一条程序代码,对JSON字符串进行处理,得到目标数据,包括:终端从JSON字符串中获取至少两个元素标识对应的元素字符串,通过第一指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据;其中,至少两个元素字符串之间为继承关系。如此,能够实现通过一个提取指令从多个具有继承关系的元素字符串中提取目标数据,从而提高了从JSON字符串中提取目标数据的效率。
可选地,终端通过第一指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据的实现方式为:终端按照该至少两个元素标识的顺序,分别通过第一指令标识符对应的程序代码对该至少两个字符串进行处理,得到目标数据。
在一种可能的实现方式中,指令序列中包括第三提取指令,第三提取指令包括第三指令标识符和至少两个元素标识。相应的,终端通过获取到的至少一条程序代码,对JSON字符串进行处理,得到目标数据,包括:终端从JSON字符串中获取至少两个元素标识对应的元素字符串,通过第三指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据;其中,至少两个元素字符串的层级结构相同。如此,能够实现通过一个提取指令从多个层级结构相同的元素字符串中提取目标数据,从而提高了从JSON字符串中提取目标数据的效率。
可选地,终端通过第三指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据的实现方式为:终端按照该至少两个元素标识的顺序,分别通过第三指令标识符对应的程序代码对该至少两个字符串进行处理,得到目标数据。
需要说明的一点是,上述实施例仅以执行主体为终端为例进行说明,可选地,在其他实施例中,执行主体为服务器或者其他电子设备。
在本申请实施例提供的技术方案中,通过参考指令集存储多个处理指令对应的程序代码,使得对JSON字符串进行处理时,不必编写程序代码,而仅需要输入简单的指令序列,即能够从参考指令集获取到对应的程序代码,来对JSON字符串进行处理,如此便节省了程序代码的开发时间,提高从JSON字符串中提取数据的效率。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图4是本申请实施例提供的一种JSON字符串的处理装置的框图。参见图4,该装置包括:
指令序列获取模块401,被配置为获取JSON字符串及针对JSON字符串输入的指令序列,指令序列包括至少一条处理指令;
程序代码获取模块402,被配置为从参考指令集中获取至少一条处理指令对应的程序代码,参考指令集中包括多个参考指令对应的程序代码;
数据处理模块403,被配置为通过获取到的至少一条程序代码,对JSON字符串进行处理,得到目标数据。
在一种可能的实现方式中,处理指令中包括指令标识符,参考指令集中包括多个指令标识符对应的程序代码;
程序代码获取模块402,被配置为从参考指令集中获取至少一条处理指令中的指令标识符对应的程序代码。
在另一种可能的实现方式中,指令序列包括多条处理指令,
数据处理模块403,被配置为按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码依次对JSON字符串进行处理,得到目标数据。
在另一种可能的实现方式中,处理指令包括指令标识符和元素标识,数据处理模块403,包括:
第一查询单元,被配置为从JSON字符串中,查询第一条处理指令中的元素标识对应的第一元素字符串;
第一处理单元,被配置为通过第一条处理指令中的指令标识符对应的程序代码,对第一元素字符串进行处理,得到第一处理数据;
第二查询单元,被配置为从第一处理数据中,查询第二条处理指令中的元素标识对应的第二元素字符串;
第二处理单元,被配置为通过第二条处理指令中的指令标识符对应的程序代码,对第二元素字符串进行处理,得到第二处理数据,直到通过最后一条处理指令中的指令标识符对应的程序代码进行处理后,得到目标数据。
在另一种可能的实现方式中,第一处理单元,被配置为对第一元素字符串进行反序列化处理,得到第一元素,通过第一条处理指令中的指令标识符对应的程序代码,对第一元素进行处理,得到第一处理数据;
第二处理单元,被配置为对第二元素字符串进行反序列化处理,得到第二元素,通过第二条处理指令中的指令标识符对应的程序代码,对第二元素进行处理,得到第二处理数据。
在另一种可能的实现方式中,数据处理模块403,包括:
多叉树生成单元,被配置为根据JSON字符串,生成目标多叉树,目标多叉树的节点包括JSON字符串中的元素字符串,且元素字符串由节点的下层节点包括的元素字符串组成;
多叉树处理单元,被配置为按照多条处理指令的排列顺序,通过多条处理指令对应的程序代码,依次对目标多叉树进行处理,得到目标数据。
在另一种可能的实现方式中,处理指令包括指令标识符和元素标识,
多叉树处理单元,被配置为从目标多叉树的第一层子节点中搜索第一条处理指令中的元素标识对应的第一节点,通过第一条处理指令中的指令标识符对应的程序代码,从目标多叉树中截取第一多叉树,第一多叉树的根节点为第一节点;从第一多叉树中的第一层子节点中搜索第二条处理指令中的元素标识对应的第二节点,通过第二条处理指令中的指令标识符对应的程序代码,从第一多叉树中截取第二多叉树,第二多叉树的根节点为第二节点,直到通过最后一条处理指令中的指令标识符对应的程序代码截取后,将截取到的多叉树的第一层子节点包括的元素字符串确定为目标数据。
在另一种可能的实现方式中,指令序列中包括第一提取指令,第一提取指令包括第一指令标识符和至少两个元素标识;
数据处理模块403,被配置为从JSON字符串中获取至少两个元素标识对应的元素字符串,通过第一指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据;其中,至少两个元素字符串之间为继承关系。
在另一种可能的实现方式中,指令序列中还包括第二提取指令,参考指令集中不包括第二提取指令对应的程序代码,
程序代码获取模块402,还被配置为从第二提取指令中获取程序代码。
在另一种可能的实现方式中,程序代码获取模块,还被配置为对指令序列进行语法检查,在语法检查通过的情况下,从参考指令集中获取至少一条处理指令对应的程序代码。
在本申请实施例提供的技术方案中,通过参考指令集存储多个处理指令对应的程序代码,使得对JSON字符串进行处理时,不必编写程序代码,而仅需要输入简单的指令序列,即能够从参考指令集获取到对应的程序代码,来对JSON字符串进行处理,如此便节省了程序代码的开发时间,提高从JSON字符串中提取数据的效率。
需要说明的是:上述实施例提供的JSON字符串的处理装置在进行JSON字符串的处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的JSON字符串的处理装置与JSON字符串的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的JSON字符串的处理方法中执行的操作。
可选地,该电子设备提供为终端。图5示出了本申请一个示例性实施例提供的终端500的结构框图。该终端500可以是:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
终端500包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器501所执行以实现本申请中方法实施例提供的JSON字符串的处理方法。
在一些实施例中,终端500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、显示屏505、摄像头组件506、音频电路507、定位组件508和电源509中的至少一种。
外围设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在另一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。
定位组件508用于定位终端500的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件508可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源509用于为终端500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。
加速度传感器511可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器513可以设置在终端500的侧边框和/或显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在显示屏505的下层时,由处理器501根据用户对显示屏505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置终端500的正面、背面或侧面。当终端500上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制显示屏505的显示亮度。具体地,当环境光强度较高时,调高显示屏505的显示亮度;当环境光强度较低时,调低显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。
接近传感器516,也称距离传感器,设置在终端500的前面板。接近传感器516用于采集用户与终端500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与终端500的正面之间的距离逐渐变大时,由处理器501控制显示屏505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图5中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
可选地,该电子设备提供为服务器。图6是本申请实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)601和一个或一个以上的存储器602,其中,所述存储器602中存储有至少一条程序代码,所述至少一条程序代码由所述处理器601加载并执行以实现上述各个方法实施例提供的JSON字符串的处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的JSON字符串的处理方法中执行的操作。
本申请实施例还提供了一种计算机程序,该计算机程序中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的JSON字符串的处理方法中执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种JSON字符串的处理方法,其特征在于,所述方法包括:
获取JSON字符串及针对所述JSON字符串输入的指令序列,所述指令序列包括至少一条处理指令;
从参考指令集中获取所述至少一条处理指令对应的程序代码,所述参考指令集中包括多个参考指令对应的程序代码;
通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据。
2.根据权利要求1所述的方法,其特征在于,所述处理指令中包括指令标识符,所述参考指令集中包括多个指令标识符对应的程序代码;
所述从参考指令集中获取所述至少一条处理指令对应的程序代码,包括:
从所述参考指令集中获取所述至少一条处理指令中的指令标识符对应的程序代码。
3.根据权利要求1所述的方法,其特征在于,所述指令序列包括多条处理指令,所述通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据,包括:
按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码依次对所述JSON字符串进行处理,得到所述目标数据。
4.根据权利要求3所述的方法,其特征在于,所述处理指令包括指令标识符和元素标识,所述按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述JSON字符串进行处理,得到所述目标数据,包括:
从所述JSON字符串中,查询第一条处理指令中的元素标识对应的第一元素字符串,通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素字符串进行处理,得到第一处理数据;
从所述第一处理数据中,查询第二条处理指令中的元素标识对应的第二元素字符串,通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素字符串进行处理,得到第二处理数据,直到通过最后一条处理指令中的指令标识符对应的程序代码进行处理后,得到所述目标数据。
5.根据权利要求4所述的方法,其特征在于,所述通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素字符串进行处理,得到第一处理数据,包括:
对所述第一元素字符串进行反序列化处理,得到第一元素,通过所述第一条处理指令中的指令标识符对应的程序代码,对所述第一元素进行处理,得到所述第一处理数据;
所述通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素字符串进行处理,得到第二处理数据,包括:
对所述第二元素字符串进行反序列化处理,得到第二元素,通过所述第二条处理指令中的指令标识符对应的程序代码,对所述第二元素进行处理,得到所述第二处理数据。
6.根据权利要求3所述的方法,其特征在于,所述按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述JSON字符串进行处理,得到所述目标数据,包括:
根据所述JSON字符串,生成目标多叉树,所述目标多叉树的节点包括所述JSON字符串中的元素字符串,且所述元素字符串由所述节点的下层节点包括的元素字符串组成;
按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述目标多叉树进行处理,得到所述目标数据。
7.根据权利要求6所述的方法,其特征在于,所述处理指令包括指令标识符和元素标识,所述按照所述多条处理指令的排列顺序,通过所述多条处理指令对应的程序代码,依次对所述目标多叉树进行处理,得到所述目标数据,包括:
从所述目标多叉树的第一层子节点中搜索第一条处理指令中的元素标识对应的第一节点,通过所述第一条处理指令中的指令标识符对应的程序代码,从所述目标多叉树中截取第一多叉树,所述第一多叉树的根节点为所述第一节点;
从所述第一多叉树中的第一层子节点中搜索第二条处理指令中的元素标识对应的第二节点,通过所述第二条处理指令中的指令标识符对应的程序代码,从所述第一多叉树中截取第二多叉树,所述第二多叉树的根节点为所述第二节点,直到通过最后一条处理指令中的指令标识符对应的程序代码截取后,将截取到的多叉树的第一层子节点包括的元素字符串确定为所述目标数据。
8.根据权利要求2所述的方法,其特征在于,所述指令序列中包括第一提取指令,所述第一提取指令包括第一指令标识符和至少两个元素标识;
所述通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据,包括:
从所述JSON字符串中获取所述至少两个元素标识对应的元素字符串,通过所述第一指令标识符对应的程序代码,从查询到的至少两个元素字符串中分别提取对应的目标数据;
其中,所述至少两个元素字符串之间为继承关系。
9.根据权利要求1所述的方法,其特征在于,所述指令序列中还包括第二提取指令,所述参考指令集中不包括所述第二提取指令对应的程序代码,所述方法还包括:
从所述第二提取指令中获取程序代码。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述从参考指令集中获取所述至少一条处理指令对应的程序代码,包括:
对所述指令序列进行语法检查,在语法检查通过的情况下,从所述参考指令集中获取所述至少一条处理指令对应的程序代码。
11.一种JSON字符串的处理装置,其特征在于,所述装置包括:
指令序列获取模块,被配置为获取JSON字符串及针对所述JSON字符串输入的指令序列,所述指令序列包括至少一条处理指令;
程序代码获取模块,被配置为从参考指令集中获取所述至少一条处理指令对应的程序代码,所述参考指令集中包括多个参考指令对应的程序代码;
数据处理模块,被配置为通过获取到的至少一条程序代码,对所述JSON字符串进行处理,得到目标数据。
12.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如权利要求1至权利要求10任一项所述的JSON字符串的处理方法所执行的操作。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求10任一项所述的JSON字符串的处理方法所执行的操作。
CN202011263928.0A 2020-11-12 2020-11-12 Json字符串的处理方法、装置、设备及存储介质 Pending CN112416356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011263928.0A CN112416356A (zh) 2020-11-12 2020-11-12 Json字符串的处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011263928.0A CN112416356A (zh) 2020-11-12 2020-11-12 Json字符串的处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112416356A true CN112416356A (zh) 2021-02-26

Family

ID=74832220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011263928.0A Pending CN112416356A (zh) 2020-11-12 2020-11-12 Json字符串的处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112416356A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115329759A (zh) * 2022-10-17 2022-11-11 北京宝兰德软件股份有限公司 信息处理方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115329759A (zh) * 2022-10-17 2022-11-11 北京宝兰德软件股份有限公司 信息处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107885533B (zh) 管理组件代码的方法及装置
CN109815150B (zh) 应用测试方法、装置、电子设备及存储介质
CN110841285B (zh) 界面元素的显示方法、装置、计算机设备及存储介质
CN110262788B (zh) 页面配置信息确定方法、装置、计算机设备及存储介质
CN108132790B (zh) 检测无用代码的方法、装置及计算机存储介质
CN110677713B (zh) 视频图像处理方法及装置、存储介质
CN111897525A (zh) 大数据处理方法及系统
CN110839128B (zh) 拍照行为检测方法、装置及存储介质
CN112261491B (zh) 视频时序标注方法、装置、电子设备及存储介质
CN111949680A (zh) 数据处理方法、装置、计算机设备及存储介质
CN112000331A (zh) 页面渲染方法、装置、电子设备及存储介质
CN111797017A (zh) 存储日志的方法、装置、测试设备及存储介质
CN111125602A (zh) 页面构建方法、装置、设备和存储介质
CN112416356A (zh) Json字符串的处理方法、装置、设备及存储介质
CN107943484B (zh) 执行业务功能的方法和装置
CN110543350A (zh) 一种生成页面组件的方法及装置
CN112116690A (zh) 视频特效生成方法、装置及终端
CN111294320B (zh) 数据转换的方法和装置
CN113268234A (zh) 页面生成方法、装置、终端和存储介质
CN113076452A (zh) 应用分类的方法、装置、设备及计算机可读存储介质
CN110851435B (zh) 一种存储数据的方法及装置
CN112612539A (zh) 数据模型卸载方法、装置、电子设备及存储介质
CN114385939A (zh) 应用显示方法、应用显示系统、装置及设备
CN112905328B (zh) 任务处理方法、装置及计算机可读存储介质
CN113760687A (zh) 接口测试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination