CN113468866A - 非标准json串的解析方法及装置 - Google Patents
非标准json串的解析方法及装置 Download PDFInfo
- Publication number
- CN113468866A CN113468866A CN202110744127.4A CN202110744127A CN113468866A CN 113468866 A CN113468866 A CN 113468866A CN 202110744127 A CN202110744127 A CN 202110744127A CN 113468866 A CN113468866 A CN 113468866A
- Authority
- CN
- China
- Prior art keywords
- standard
- json string
- string
- standard json
- identification information
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
Abstract
本发明公开了一种非标准JSON串的解析方法及装置,其中该方法包括:获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。本发明涉及大数据技术领域,根据SUBSTRING函数、以及正则表达式将非标准的JSON串转化为标准的JSON串,提高了非标准JSON串的解析效率。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及非标准JSON串的解析方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
JSON(JavaScript Object Notation,JS对象简谱)在大数据加工的流计算中使用频繁,百分之九十的数据都是通过JSON方式进行传输。在大数据流计算、以及数据存储过程中,为了便于计算和管理出,常常会在JSON串的头部加上标识信息,这就导致了JSON串的形式多样,另外,部分JSON串中的分隔符可能也存在机器不能识别的非标准分隔符;JSON串头部存在标识信息,和/或JSON串中存在机器无法识别的非标准分隔符都属于非标准JSON串。
传统的JSON解析算法大都针对标准的JSON串解析,适用的数据量均偏小。而在大数据流计算中存在大量的非标准JSON串,在对非标准的JSON串进行解析时,需要先由人工介入去辨别非标准的JSON串,将非标准的JSON串转换为标准的JSON串,然后进行进一步的解析,非标准JSON串的解析效率低。
发明内容
本发明实施例提供一种非标准JSON串的解析方法,用以提高非标准JSON串的解析效率,该方法包括:
获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;
将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;
利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;
去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
在一种可能的实施方式中,获取非标准JSON串,包括:
获取银行系统的数据流;
其中,数据流中包含多个时间点、以及多个业务类型分别对应的标准JSON串、以及非标准JSON串;
根据预设时间点对数据流进行切片处理;其中,每个切片中包含至少一个非标准JSON串;
针对每一切片,获取该切片中的非标准JSON串。
在一种可能的实施方式中,针对每一切片,获取该切片中的非标准JSON串,包括:
针对每一切片,根据该切片中各非标准JSON串的标识信息、以及预设业务类型,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
在一种可能的实施方式中,利用SUBSTRING函数提取目标字段中去除标识信息的JSON串,包括:
利用SUBSTRING函数,提取预设字符后的内容,得到去除标识信息的JSON串;
其中,预设字符为标准JSON串的最左侧字符。
在一种可能的实施方式中,非标准JSON串中包含多个非标准JSON串;
利用SUBSTRING函数提取目标字段中去除标识信息的JSON串,包括:
利用SUBSTRING函数,从目标字段中按照从上到下、从左到右的顺序提取至少一个去除标识信息的JSON串。
在一种可能的实施方式中,利用SUBSTRING函数,按顺序提取目标字段中至少一个去除标识信息的JSON串,包括:
从目标字段的全部非标准JSON串中,确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串;
利用SUBSTRING函数,提取目标非标准JSON串的标识信息后的内容。
在一种可能的实施方式中,还包括:
将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
在一种可能的实施方式中,根据预设的数据结构,写入时序数据库中,包括:
根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签。
在一种可能的实施方式中,非标准JSON串包括银行用户上传信息中的非标准JSON串、和/或银行系统的数据流中的非标准JSON串。
本发明实施例还提供一种非标准JSON串的解析装置,用以提高非标准JSON串的解析效率,该装置包括:
获取模块,用于获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;
第一处理模块,用于将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;
第二处理模块,用于利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;
第三处理模块,用于去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
在一种可能的实施方式中,获取模块,具体用于获取银行系统的数据流;
其中,数据流中包含多个时间点、以及多个业务类型分别对应的标准JSON串、以及非标准JSON串;
根据预设时间点对数据流进行切片处理;其中,每个切片中包含至少一个非标准JSON串;
针对每一切片,获取该切片中的非标准JSON串。
在一种可能的实施方式中,获取模块,具体用于针对每一切片,根据该切片中各非标准JSON串的标识信息、以及预设业务类型,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
在一种可能的实施方式中,第二处理模块,具体用于利用SUBSTRING函数,提取预设字符后的内容,得到去除标识信息的JSON串;
其中,预设字符为标准JSON串的最左侧字符。
在一种可能的实施方式中,非标准JSON串中包含多个非标准JSON串;
第二处理模块,具体用于利用SUBSTRING函数,从目标字段中按照从上到下、从左到右的顺序提取至少一个去除标识信息的JSON串。
在一种可能的实施方式中,第二处理模块,具体用于从目标字段的全部非标准JSON串中,确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串;
利用SUBSTRING函数,提取目标非标准JSON串的标识信息后的内容。
在一种可能的实施方式中,还包括:
第四处理模块,用于将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
在一种可能的实施方式中,第四处理模块,具体用于根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签。
在一种可能的实施方式中,非标准JSON串包括银行用户上传信息中的非标准JSON串、和/或银行系统的数据流中的非标准JSON串。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述非标准JSON串的解析方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述非标准JSON串的解析方法的计算机程序。
本发明实施例中,获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串;这样,根据SUBSTRING函数、以及正则表达式将非标准的JSON串转化为标准的JSON串,与现有技术中在对非标准的JSON串进行解析时,需要先由人工介入去辨别非标准的JSON串,将非标准的JSON串转换为标准的JSON串相比,提高了非标准JSON串的解析效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种非标准JSON串的解析方法;
图2为一种传统的JSON解析方法的流程图;
图3为本发明实施例中提供的在一种获取非标准JSON串的方法流程图;
图4为本发明实施例中提供的一种非标准JSON串的解析装置的示例图;
图5为本发明实施例中提供的一种计算机设备的示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
JSON是一串字符串,其中包含的元素会使用特定的符号标注。例如,“{}”双括号表示对象,“[]”中括号表示数组,“""”双引号内是属性或值,“:”冒号表示冒号后的内容是冒号前的内容的值(这个值可以是字符串、数字、也可以是另一个数组或对象)。例如{"name":"Jack"}代表包含“name”为“Jack”的对象,而[{"name":"Jack"},{"name":"Jerry"}]代表包含两个对象的数组。也可以使用{"name":["Jack","Jerry"]}来简化。
经研究发现,银行系统中为了区分各种业务类型对应的JSON串,会在JSON串的头部加上标识信息,并且在某些JSON串中还存在非标准分隔符,JSON串的头部存在标识信息,和/或JSON串中存在非标准分隔符都属于非标准JSON串。在对非标准JSON串进行解析时,机器无法直接识别非标准JSON串,先由人工识别非标准JSON串,并将非标准JSON串转换为标准的JSON串,然后进行进一步的解析,非标准JSON串的解析效率低。
针对上述研究,本发明实施例提供一种非标准JSON串的解析方法,如图1所示,包括:
S101:获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;
S102:将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;
S103:利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;
S104:去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
本发明实施例中,获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串;这样,根据SUBSTRING函数、以及正则表达式将非标准的JSON串转化为标准的JSON串,与现有技术中在对非标准的JSON串进行解析时,需要先由人工介入去辨别非标准的JSON串,将非标准的JSON串转换为标准的JSON串相比,提高了非标准JSON串的解析效率。
下面对上述S101~S104加以详细说明。
针对上述S101,非标准JSON串例如包括:银行用户上传信息中的非标准JSON串、和/或银行系统的数据流中的非标准JSON串。
其中,非标准JSON串的头部包括标识信息;标识信息例如包括:数字、字符、字符串、数字和字符的组合等;标识信息用于表征该JSON串对应的业务类型。
此处,银行用户例如包括:银行员工、银行客户等;银行系统例如包含银行外围系统、银行业务系统等。
针对用户上传信息中的非标准JSON串,包含的数据量较小,可以直接读取用户上传信息,进而获取其中的非标准JSON串;针对银行业务系统的数据流中的非标准JSON串,因为数据流中包含的数量巨大,如果直接读入数据流,从数据流中获取非标准JSON串,会有数据溢出的风险。现有技术中对JSON的解析需要读入全部的JSON串进行解析,例如:
如图2所示,为一种传统的JSON解析方法的流程图,包括:
S201:通过词法分析,将JSON分为多个的token。
其中,每一token包含类型和值;token的类型包含五种:true/false/null(归为一种,因为它们是固定值)、number、string、object、array。
S202:通过语法分析构建一棵抽象语法树,对token进行处理。
该方法需要一次性将全部的JSON串都读入,对数据流中的JSON串并不适用,依然存在溢出的风险,因此针对银行业务系统的数据流中的非标准JSON串,本发明另一实施例中提供一种获取非标转JSON串的方法:
如图3所示,为本发明实施例提供的在一种获取非标准JSON串的方法流程图,包括:
S301:获取银行系统的数据流。
其中,数据流中包含多个时间点、以及多个业务类型分别对应的标准JSON串、以及非标准JSON串。
S302:根据预设时间点对数据流进行切片处理。
其中,每个切片中包含至少一个非标准JSON串;预设时间点可以结合具体的应用场景设定,例如可以结合数据流中包含的数据量、以及想要每一切片中包含多少数据量决定预设时间点。
示例性的,数据流中包含对应的时间标签,寻找与预设时间点一致的时间标签作为目标时间标签,从目标时间标签对应的数据部分对数据流进行切片处理,将数据流分为多个切片,每一切片中包含数据流中的部分数据,并且包含至少一个非标准JSON串。
或者,本发明另一实施例中,例如可以采用哈希算法、取模算法、区间范围算法等任一种对数据流进行切片处理,得到多个切片,每一切片中包含至少一个非标准JSON串。
这样,将数据流根据时间切片,可以减少每一切片中包含的数据量,读入每一切片时避免数据溢出。
S303:针对每一切片,获取该切片中的非标准JSON串。
具体的,例如可以获取每个切片中所有的非标准JSON串;但是在具体的解析过程中,并不是要对所有的JSON串都要进行解析,可能只是需要针对某些业务的JSON串进行解析,为了避免进行多余的解析工作,在一种优选的实施方式中,针对每一切片,根据该切片中各非标准JSON串的标识信息、以及预设业务类型,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
其中,预设业务类型为要进行解析的业务对应的业务类型,具体可结合实际场景进行限定。
示例性的,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串时,例如:对每一切片进行分词处理、或者语义识别,根据分词处理结果、或者语义识别结果从该切片中找出与预设业务类型一致的标识信息。
此处,例如可以采用下述(1)~(2)任一种方法对每一分片进行分词处理:
(1)利用基于字符串匹配的分词方法对每一分片进行分词处理,例如包括正向最大匹配、逆向最大匹配、双向最大匹配。
下面以分词处理中的正向最大匹配为例进行说明(但是不代表本发明实施只能根据举例中的方法获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串):针对每一切片,根据预设业务类型确定预设业务类型对应的标识信息包含的符号数量,根据符号数量,针对每一切片,从左到右每次选取符号数量个符号与预设业务类型对应的标识信息进行比较,如果比较结果不一致,针对每一切片,从上次比较的下个符号开始,选取符号数量个符号与预设业务类型对应的标识信息进行比较,直至比较结果一致;如果比较结果一致,提取切片中非标准JSON串,例如,JSON串的最外层字符为“{”和“}”,从当前比较的第一个符号开始,依次向右遍历切片的符号,获取当前比较的第一个符号到与当前比较的第一个符号后的第一个“{”对应的“}”的内容,得到非标准JSON串;从非标准JSON串后的第一个符号继续采用相同的比较方法确定该切片中的其它非标准JSON串。
其中,符号例如包括字符、数字等至少一种。
另外,逆向最大匹配只是将从左到右每次选取符号数量个符号与预设业务类型对应的标识信息进行比较,换成从右到左每次选取符号数量个符号与预设业务类型对应的标识信息进行比较,其它操作与正向最大匹配相似,此处不再赘述;双向最大匹配法是将正向最大匹配法得到的分词结果与逆向最大匹配法得到的分词结果进行比较,从而确定正确的分词方法。
(2)利用预先训练的分词模型对每一分片进行分词处理;分词模型例如包括:马尔可夫模型(Hidden Markov Model,HMM)、条件随机域模型(Conditional Random Field,CRF)、结构化感知器(Structured Perceptron,SP)等。
这样,根据非标准JSON串的标识信息、以及预设的业务类型从每一切片中确定出需要解析的非标准JSON串,避免对不需要进行解析的非标准JSON串进行解析,减少解析资源的浪费,提高解析效率。
承接上述S101,获取到非标准JSON串后,继续执行上述S102所述的步骤;针对上述S102,逗号分隔值(Comma-Separated Values,CSV)是一种通用的文件格式,其文件以文本形式存储表格数据(例如包括数字和文本);STRING为高级编程语言(例如c++、JAVA、VB等)中的数据类型;将非标准JSON串转换为CSV文件格式,得到STRING类型的目标字段,目标字段中包含获取的非标准JSON串。
针对上述S103,SUBSTRING函数是SQL Server数据库中的一个函数,用于截取字符串的某部分。
利用SUBSTRING函数提取目标字段中去除标识信息的JSON串时,例如:利用SUBSTRING函数,提取预设字符后的内容,得到去除标识信息的JSON串,其中,预设字符为标准JSON串的最左侧字符。
具体的,利用SUBSTRING函数,提取预设字符后的内容例如包括提取预设字符后的全部内容,或者提取预设字符后的部分内容。
示例性的,非标准JSON的格式例如为:<标识信息>{JSON串的内容},则提取JSON串最左侧的字符“{”后的内容例如包括:提取“JSON串的内容”中全部或者部分,提取出来的部分为去除标识信息的JSON串。
另外,非标准JSON串中包含多个非标准JSON串,例如<标识信息1>{<标识信息2>{JSON串的内容}、<标识信息3>{JSON串的内容}、<标识信息4>{JSON串的内容}},因此利用SUBSTRING函数提取目标字段中去除标识信息的JSON串时,例如可以利用SUBSTRING函数,从目标字段中按照从上到下、从左到右的顺序提取至少一个去除标识信息的JSON串。
其中,从上到下是指目标字段中包含的数据可能为多行,按照从上到下的顺序遍历每一行,针对每一行按照从左到右的顺序,利用SUBSTRING函数提取出至少一个非标准JSON串。
此处,利用SUBSTRING函数提取出至少一个非标准JSON串时,例如可以提取非标准JSON串中包括的全部非标准JSON串;但是,针对非标准JSON串中包括的JSON串也并不是每一个都需要进行解析,因此本发明另一实施例中,利用SUBSTRING函数,按顺序提取目标字段中至少一个去除标识信息的JSON串时,例如:从目标字段的全部非标准JSON串中,确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串;利用SUBSTRING函数,提取目标非标准JSON串的标识信息后的内容。
示例性的,利用SUBSTRING函数遍历非标准JSON串,在第一个“{”后,利用分词处理或者语义识别处理的方法确定第一个“{”后,与预设业务类型一致的标识信息,利用SUBSTRING函数提取与业务类型一致的标识信息后的第一个“{”后的部分内容或者全部内容,得到去除标识信息的JSON串。
这样,可以进一步从非标准JSON串包含的多个非标准JSON串中确定出需要解析的非标准JSON串,然后通过SUBSTRING函数去除需要解析的非标准JSON串的标识信息,避免对非标准JSON串中其它不需要解析的非标准JSON串进行解析,提高非标准JSON串的解析效率。
针对上述S104,正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,即用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,通过该规则字符串,可以从区别于规则字符串的其它字符串中替换、匹配、提取特定的内容。
本发明另一实施例中,部分非标准JSON串除了头部包括标识信息外,在JSON串中还包括非标准分隔符,机器无法识别非标准分隔符(例如“@”、“|”等),因此当去除了标识信息的JSON串中包含非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,进而得到标准JSON串。
其中,机器例如包括:具有计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
在得到标准JSON串后,本发明另一实施例还提供一种对得到的标准JSON串进行进一步解析的方法:将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
此处,时序数据库(Time Series Database)是用于存储和管理时间序列数据的数据库;时序数据库中包括:度量(metric)、标签(tag)、域(field)、度量值(value)、时间戳(Timestamp)、数据点(Data Point)等。
其中:
①度量(metric)表示监测数据的指标。
②标签(tag)指标项监测针对的具体对象,属于指定度量下的数据子类别,一个标签(Tag)由一个标签键(TagKey)和一个对应的标签值(TagValue)组成。
示例性的,在监测数据的时候,指定度量(Metric)是“气温”,“城市(TagKey)=杭州(TagValue)”就是一个标签(Tag),则监测的就是杭州市的气温。
③域(field)表示在指定度量下数据的子类别,一般情况下存放的是会随着时间戳的变化而变化的数据。
示例性的,一个metric可支持多个field,如metric为风力,该度量可以有两个field:方向和速度。
④度量值(value)表示度量对应的数值。
示例性的,如果有多个field,每个field都有相应的value。不同的field支持不同的数据类型写入。对于同一个field,如果写入了某个数据类型的value之后,相同的field不允许写入其他数据类型。
⑤时间戳(Timestamp)代表数据(度量值)产生的时间点。
⑥数据点(Data Point)代表针对监测对象的某项指标(由度量和标签定义)按特定时间间隔(连续的时间戳)采集的每个度量值就是一个数据点。
示例性的,1个metric+1个field(可选)+1个timestamp+1个value+n个tag(n>=1)唯一定义了一个数据点。
具体的,将标准JSON串中的值,根据预设的数据结构,写入时序数据库中时,例如可以根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签。
为了进一步对本发明实施例的非标准JSON串的解析方法加以说明,下面以对银行系统的数据流中的非标准JSON串解析为例进行说明:
步骤1:将银行系统中的数据流进行切片处理。
例如,按照预设的时间点、哈希算法、取模算法、区间范围算法等任一种对数据流进行切片处理,得到多个切片,每一切片中包含至少一个非标准JSON串。
步骤2:从每一切片中获取非标准JSON串。
例如:获取每一切片中全部的非标准JSON串,或者获取每一切片中标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
步骤3:非标准JSON串中可能包含多个非标准JSON串,针对每一JSON串,利用SUBSTRING函数提取去除标识信息的JSON串。
示例性的:
针对不包含其它非标准JSON串的非标准JSON串,在该非标准JSON串的标识信息表征的业务类型与预设业务类型时,利用SUBSTRING函数提取该非标准JSON串的标识信息后的部分或者全部内容,得到去除标识信息的JSON串。
针对包含多个其它非标准JSON串的非标准JSON串,利用分词工具从多个非标准JSON中确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串,利用SUBSTRING函数提取目标非标准JSON串的标识信息后的第一个“{”后的全部内容或者部分内容,得到去除标识信息的JSON串。
步骤4:确定去除标识信息的JSON串中是否存在非标准分隔符,不存在非标准分隔符的去除标识信息的JSON串就为标准JSON串,存在非标准分隔符的去除标识信息的JSON串,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
步骤5:针对得到的每一标准JSON串,将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
示例性的,根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签;例如得到的标准JSON串为“"DATA":"f_data","APPINFO":["f_data1","f_data2","f_data3"],其中,“DATA”为标准JSON串的键,“"f_data1","f_data2","f_data3"”为标准JSON串的值,需要将“APPINFO”中的三个值即"f_data1"、"f_data2"、"f_data3"写入到时序数据库的一个度量的多个对应的域中,将DATA作为标签。
本发明实施例中还提供了一种非标准JSON串的解析装置,如下面的实施例所述。由于该装置解决问题的原理与非标准JSON串的解析方法相似,因此该装置的实施可以参见非标准JSON串的解析方法的实施,重复之处不再赘述。
如图4所示,为本发明实施例提供的一种非标准JSON串的解析装置的示例图,包括:获取模块401、第一处理模块402、第二处理模块403、以及第三处理模块404;其中,
获取模块401,用于获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;
第一处理模块402,用于将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;
第二处理模块403,用于利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;
第三处理模块404,用于去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
在一种可能的实施方式中,获取模块,具体用于获取银行系统的数据流;其中,数据流中包含多个时间点、以及多个业务类型分别对应的标准JSON串、以及非标准JSON串;根据预设时间点对数据流进行切片处理;其中,每个切片中包含至少一个非标准JSON串;针对每一切片,获取该切片中的非标准JSON串。
在一种可能的实施方式中,获取模块,具体用于针对每一切片,根据该切片中各非标准JSON串的标识信息、以及预设业务类型,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
在一种可能的实施方式中,第二处理模块,具体用于利用SUBSTRING函数,提取预设字符后的内容,得到去除标识信息的JSON串;其中,预设字符为标准JSON串的最左侧字符。
在一种可能的实施方式中,非标准JSON串中包含多个非标准JSON串;第二处理模块,具体用于利用SUBSTRING函数,从目标字段中按照从上到下、从左到右的顺序提取至少一个去除标识信息的JSON串。
在一种可能的实施方式中,第二处理模块,具体用于从目标字段的全部非标准JSON串中,确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串;利用SUBSTRING函数,提取目标非标准JSON串的标识信息后的内容。
在一种可能的实施方式中,还包括:第四处理模块,用于将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
在一种可能的实施方式中,第四处理模块,具体用于根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签。
在一种可能的实施方式中,非标准JSON串包括银行用户上传信息中的非标准JSON串、和/或银行系统的数据流中的非标准JSON串。
基于同一发明构思,本发明实施例中还提供了一种用于实现上述非标准JSON串的解析方法中的全部或部分内容的计算机设备实施例,用以提高非标准JSON串的解析效率。该计算机设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现相关设备之间的信息传输;该计算机设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该计算机设备可以参照实施例用于实现上述非标准JSON串的解析方法的实施例及用于实现上述非标准JSON串的解析装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
如图5所示,为本发明提供的一种计算机设备的示例图,其中,计算设备500包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述非标准JSON串的解析方法。值得注意的是,该图5是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述非标准JSON串的解析方法的计算机程序。
本发明实施例中,获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串,与现有技术中需要先由人工介入去辨别非标准的JSON串,将非标准的JSON串转换为标准的JSON串的技术方案相比,通过根据SUBSTRING函数、以及正则表达式将非标准的JSON串转化为标准的JSON串,提高了非标准JSON串的解析效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种非标准JSON串的解析方法,其特征在于,包括:
获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;
将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;
利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;
去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
2.根据权利要求1所述的解析方法,其特征在于,获取非标准JSON串,包括:
获取银行系统的数据流;其中,数据流中包含多个时间点、以及多个业务类型分别对应的标准JSON串、以及非标准JSON串;
根据预设时间点对数据流进行切片处理;其中,每个切片中包含至少一个非标准JSON串;
针对每一切片,获取该切片中的非标准JSON串。
3.根据权利要求2所述的解析方法,其特征在于,针对每一切片,获取该切片中的非标准JSON串,包括:
针对每一切片,根据该切片中各非标准JSON串的标识信息、以及预设业务类型,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
4.根据权利要求1所述的解析方法,其特征在于,利用SUBSTRING函数提取目标字段中去除标识信息的JSON串,包括:
利用SUBSTRING函数,提取预设字符后的内容,得到去除标识信息的JSON串;
其中,预设字符为标准JSON串的最左侧字符。
5.根据权利要求1所述的解析方法,其特征在于,非标准JSON串中包含多个非标准JSON串;
利用SUBSTRING函数提取目标字段中去除标识信息的JSON串,包括:
利用SUBSTRING函数,从目标字段中按照从上到下、从左到右的顺序提取至少一个去除标识信息的JSON串。
6.根据权利要求5所述的解析方法,其特征在于,利用SUBSTRING函数,按顺序提取目标字段中至少一个去除标识信息的JSON串,包括:
从目标字段的全部非标准JSON串中,确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串;
利用SUBSTRING函数,提取目标非标准JSON串的标识信息后的内容。
7.根据权利要求1所述的解析方法,其特征在于,还包括:
将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
8.根据权利要求7所述的解析方法,其特征在于,根据预设的数据结构,写入时序数据库中,包括:
根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签。
9.根据权利要求1所述的解析方法,其特征在于,非标准JSON串包括银行用户上传信息中的非标准JSON串、和/或银行系统的数据流中的非标准JSON串。
10.一种非标准JSON串的解析装置,其特征在于,包括:
获取模块,用于获取非标准JSON串;其中,非标准JSON串的头部包括标识信息;
第一处理模块,用于将非标准JSON串转换成逗号分隔值CVS文件格式,得到STRING类型的目标字段;
第二处理模块,用于利用SUBSTRING函数提取目标字段中去除标识信息的JSON串;
第三处理模块,用于去除标识信息的JSON串存在非标准分隔符时,利用正则表达式将非标准分隔符替换为预设的标准分隔符,得到标准JSON串。
11.根据权利要求10所述的解析装置,其特征在于,获取模块,具体用于获取银行系统的数据流;其中,数据流中包含多个时间点、以及多个业务类型分别对应的标准JSON串、以及非标准JSON串;
根据预设时间点对数据流进行切片处理;其中,每个切片中包含至少一个非标准JSON串;
针对每一切片,获取该切片中的非标准JSON串。
12.根据权利要求11所述的解析装置,其特征在于,获取模块,具体用于针对每一切片,根据该切片中各非标准JSON串的标识信息、以及预设业务类型,获取标识信息表征的业务类型与预设业务类型一致的非标准JSON串。
13.根据权利要求10所述的解析装置,其特征在于,第二处理模块,具体用于利用SUBSTRING函数,提取预设字符后的内容,得到去除标识信息的JSON串;
其中,预设字符为标准JSON串的最左侧字符。
14.根据权利要求10所述的解析装置,其特征在于,非标准JSON串中包含多个非标准JSON串;
第二处理模块,具体用于利用SUBSTRING函数,从目标字段中按照从上到下、从左到右的顺序提取至少一个去除标识信息的JSON串。
15.根据权利要求14所述的装置,其特征在于,第二处理模块,具体用于从目标字段的全部非标准JSON串中,确定标识信息表征的业务类型与预设业务类型一致的目标非标准JSON串;
利用SUBSTRING函数,提取目标非标准JSON串的标识信息后的内容。
16.根据权利要求10所述的解析装置,其特征在于,还包括:
第四处理模块,用于将标准JSON串中的值,根据预设的数据结构,写入时序数据库中。
17.根据权利要求16所述的解析装置,其特征在于,第四处理模块,具体用于根据预设的数据结构,将标准JSON串中的值分别写入时序数据库的一个度量的多个对应的域中,将当前时间作为时间戳,将标准JSON串的键作为标签。
18.根据权利要求10所述的解析装置,其特征在于,非标准JSON串包括银行用户上传信息中的非标准JSON串、和/或银行系统的数据流中的非标准JSON串。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一所述非标准JSON串的解析方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至9任一所述非标准JSON串的解析方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110744127.4A CN113468866B (zh) | 2021-06-30 | 2021-06-30 | 非标准json串的解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110744127.4A CN113468866B (zh) | 2021-06-30 | 2021-06-30 | 非标准json串的解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468866A true CN113468866A (zh) | 2021-10-01 |
CN113468866B CN113468866B (zh) | 2022-09-16 |
Family
ID=77877103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110744127.4A Active CN113468866B (zh) | 2021-06-30 | 2021-06-30 | 非标准json串的解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468866B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113807078A (zh) * | 2021-10-09 | 2021-12-17 | 杭州路信科技有限公司 | 信号联锁系统控制方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933968A (zh) * | 2018-07-03 | 2018-12-04 | 武汉斗鱼网络科技有限公司 | 一种消息格式的转换方法、装置、存储介质及安卓终端 |
CN109408569A (zh) * | 2018-09-28 | 2019-03-01 | 平安科技(深圳)有限公司 | Json数据转换方法、装置、计算机设备及存储介质 |
CN109885347A (zh) * | 2017-12-01 | 2019-06-14 | 财付通支付科技有限公司 | 一种配置数据的获取方法、装置及终端、系统、存储介质 |
CN110727703A (zh) * | 2019-09-23 | 2020-01-24 | 苏宁云计算有限公司 | 一种自动识别json代码中注释的方法及装置 |
WO2020215558A1 (zh) * | 2019-04-26 | 2020-10-29 | 平安科技(深圳)有限公司 | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN112860777A (zh) * | 2021-03-22 | 2021-05-28 | 深圳市腾讯信息技术有限公司 | 数据处理方法、装置及设备 |
-
2021
- 2021-06-30 CN CN202110744127.4A patent/CN113468866B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885347A (zh) * | 2017-12-01 | 2019-06-14 | 财付通支付科技有限公司 | 一种配置数据的获取方法、装置及终端、系统、存储介质 |
CN108933968A (zh) * | 2018-07-03 | 2018-12-04 | 武汉斗鱼网络科技有限公司 | 一种消息格式的转换方法、装置、存储介质及安卓终端 |
CN109408569A (zh) * | 2018-09-28 | 2019-03-01 | 平安科技(深圳)有限公司 | Json数据转换方法、装置、计算机设备及存储介质 |
WO2020215558A1 (zh) * | 2019-04-26 | 2020-10-29 | 平安科技(深圳)有限公司 | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN110727703A (zh) * | 2019-09-23 | 2020-01-24 | 苏宁云计算有限公司 | 一种自动识别json代码中注释的方法及装置 |
CN112860777A (zh) * | 2021-03-22 | 2021-05-28 | 深圳市腾讯信息技术有限公司 | 数据处理方法、装置及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113807078A (zh) * | 2021-10-09 | 2021-12-17 | 杭州路信科技有限公司 | 信号联锁系统控制方法、装置、电子设备及存储介质 |
CN113807078B (zh) * | 2021-10-09 | 2023-03-10 | 杭州路信科技有限公司 | 信号联锁系统控制方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113468866B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907244B2 (en) | Modifying field definitions to include post-processing instructions | |
CN108460014B (zh) | 企业实体的识别方法、装置、计算机设备及存储介质 | |
CN110020422B (zh) | 特征词的确定方法、装置和服务器 | |
US20210081437A1 (en) | Systems and methods for trie-based automated discovery of patterns in computer logs | |
US10366095B2 (en) | Processing time series | |
CN108182215B (zh) | 一种结构化查询语言sql性能统计的方法及装置 | |
CN108363686A (zh) | 一种字符串分词方法、装置、终端设备及存储介质 | |
CN109144964A (zh) | 基于机器学习的日志解析方法和装置 | |
CN112784009B (zh) | 一种主题词挖掘方法、装置、电子设备及存储介质 | |
CN114817651B (zh) | 数据存储方法、数据查询方法、装置和设备 | |
CN113468866B (zh) | 非标准json串的解析方法及装置 | |
CA2868540A1 (en) | Entity resolution from documents | |
CN112364014A (zh) | 数据查询方法、装置、服务器及存储介质 | |
CN110147223B (zh) | 组件库的生成方法、装置及设备 | |
CN112860685A (zh) | 对数据集的分析的自动推荐 | |
CN110674635A (zh) | 一种用于文本段落划分的方法和装置 | |
WO2016093839A1 (en) | Structuring of semi-structured log messages | |
CN111538903B (zh) | 搜索推荐词确定方法、装置、电子设备及计算机可读介质 | |
CN116821903A (zh) | 检测规则确定及恶意二进制文件检测方法、设备及介质 | |
CN112214494B (zh) | 检索方法及装置 | |
CN106682107B (zh) | 数据库表关联关系确定方法及装置 | |
CN113032575B (zh) | 一种基于主题模型的文档血缘关系挖掘的方法及装置 | |
CN116822491A (zh) | 日志解析方法及装置、设备、存储介质 | |
CN115796146A (zh) | 一种文件对比方法及装置 | |
CN115344538A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221101 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Patentee after: CHINA CONSTRUCTION BANK Corp. Address before: 12 / F, 15 / F, No. 99, Yincheng Road, Shanghai pilot Free Trade Zone, 200120 Patentee before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |