CN113128208A - 一种json文件解析方法、装置及电子设备 - Google Patents
一种json文件解析方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113128208A CN113128208A CN202110452208.7A CN202110452208A CN113128208A CN 113128208 A CN113128208 A CN 113128208A CN 202110452208 A CN202110452208 A CN 202110452208A CN 113128208 A CN113128208 A CN 113128208A
- Authority
- CN
- China
- Prior art keywords
- data
- json file
- json
- task
- processing service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 77
- 238000004458 analytical method Methods 0.000 claims abstract description 42
- 230000000717 retained effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012950 reanalysis Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- G06F40/221—Parsing markup language streams
-
- 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
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种JSON文件解析方法,所述方法包括:获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;所述数据处理服务节点获取对应的所述解析区间任务进行解析。
Description
技术领域
本申请涉及数据解析领域,尤其涉及一种JSON文件解析方法、装置及电子设备。
背景技术
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它使得人们可以很容易地进行阅读和编写,同时也方便了机器进行解析和生成。JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C、C++、C#、Java、JavaScript、Perl和Python等),这些特性使得JSON成为理想的数据交换语言。
JSON传递的对象可以是name、value对、数组或其他对象。前后台传输的时候其实是字符串,JSON解析是把字符串重新变成JSON类型的对象,这样就能对里面的各种类型的属性或对象进行操作了。
在目前市面上的JSON解析方案中,需要将JSON文件加载至内存进行解析,当JSON文件较大时,一是需要相应内存大小的服务器,成本较高,二是单个文件会占用服务器大量内存,导致无法处理多批次JSON文件,并发能力较弱,可用性较低,三是JSON文件仅可集中式处理,解析成本较高,耗时较长。
且当解析服务器处理失败或解析服务器异常时,将导致此JSON文件解析失败,需要服务器进行重新解析。
发明内容
本申请要解决的技术问题,在于提供一种JSON文件解析方法、装置及电子设备,以解决现有技术中大体积JSON文件解析需要大内存服务器以及并发能力弱、解析耗时长的技术问题。
为实现上述目的,本申请采用下述技术方案:
第一方面,本申请提供一种JSON文件解析方法,所述方法包括:获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;
获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;
所述数据处理服务节点获取对应的所述解析区间任务进行解析。
第二方面,本申请提供JSON文件解析装置,所述装置包括:
第一获取单元,用于获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;
第一分配单元,用于获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;
第二获取单元,用于所述数据处理服务节点获取对应的所述解析区间任务进行解析。
第三方面,本申请提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由所述处理器执行以实现如上述第一方面所述的JSON文件解析方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由处理器执行以实现如上述第一方面所述的JSON文件解析方法。
本申请的有益效果是:本申请提供一种JSON文件解析方法、装置及电子设备,将庞大的JSON解析任务合理分割后由每个数据处理服务节点根据处理能力进行并行处理,缩短整体的解析时间且变相提高了处理能力。
附图说明
图1为本申请一个实施例提供的JSON解析系统的架构示意图;
图2为本申请一个实施例提供的一种JSON文件解析方法的流程示意图;
图3为本申请一个实施例提供的数据处理服务节点解析区间任务的流程示意图;
图4为本申请一个实施例提供的一种JSON文件解析装置的结构示意图;
图5为本申请一个实施例提供的一种JSON文件解析装置的结构示意图
图6为本申请一个实施例提供的一种电子设备的结构示意图。
具体实施方式
下面通过具体实施例,并结合附图,对本申请的技术方案作进一步的具体描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供提供一种JSON文件解析方法、装置及电子设备,以解决现有技术中大体积JSON文件解析需要大内存服务器以及并发能力弱、解析耗时长的技术问题。
以下结合附图,详细说明本申请中各实施例提供的技术方案。
请参阅附图1,其示出了本申请一个实施例提供的JSON解析系统的架构示意图,包括业务系统、数据协调系统集群、数据处理服务系统集群、注册中心以及数据库(mysql),业务系统用于下发JSON解析任务,数据协调系统集群用于向数据处理服务节点分配解析区间任务和数据闭合任务,数据处理服务系统集群用于执行解析区间任务和数据闭合任务,注册中心用于数据处理服务节点实现服务注册与发现功能。
请参阅附图2,其示出了本申请一个实施例提供的一种JSON文件解析方法的流程示意图,所述方法包括:
S201,获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;
针对步骤S201,数据处理服务节点基于zookeeper来实现服务注册与发现功能,基于多节点的数据处理模式,一个数据处理服务节点的崩溃不会影响到其他的节点,同时可动态调整分配节点,具有较高的可靠性以及较高容错性。
S202,获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;
针对步骤S202,可以理解,每个数据处理服务节点的处理能力可能相同或不相同,此时,基于不同数据处理服务节点的处理能力,向每个数据处理服务节点根据JSON解析任务的JSON文件行数分配解析区间任务,例如:处理能力强的数据处理服务节点被分配多一些的JSON文件行数,处理能力弱的数据处理服务节点被分配少一些的JSON文件行数,上述分配可以是线性的,也可以是非线性的,本申请对此不做限定。
S203,所述数据处理服务节点获取对应的所述解析区间任务进行解析。
在一个实施例中,所述方法还包括:根据所述数据处理服务节点的处理能力下发数据闭合任务。
在一个实施例中,请请参阅附图3,其示出了本申请一个实施例提供的数据处理服务节点解析区间任务的流程示意图,包括:
S301,基于所述解析区间任务的开始行号和结束行号,多线程分页获取目标JSON文件数据;
S302,对所述目标JSON文件数据的每一行数据进行解析并转换成tree结构,其中,对行数据是尾节点的标记缺乏父ID标识;
采用tree的数据结构存储单元,在数据插入、获取、修改等极大的减少IO层的交互成本,提升服务器的吞吐能力。
S303,当所述目标JSON文件数据的每一页数据解析完毕后,进行数据闭合匹配形成闭合数据并保存至数据库中。
可以理解,在目标JSON文件数据的任一页数据被解析完毕后,直接进行数据闭合匹配以形成闭合数据。
针对步骤S303,当进行数据闭合匹配后未形成闭合数据时,保留目标JSON文件数据的当前页的节点标签标识以及节点ID,并将每一行数据的其余属性丢弃。
当所述目标JSON文件数据解析完毕后,对未闭合数据进行闭合处理形成闭合数据或无法形成闭合数据的节点标记缺乏父ID标识。
在一个实施例中,获取缺乏父ID标识以及未形成闭合的子标签节点,以缺乏父ID标识节点数据为首,依次寻找父ID形成闭合数据。
请参阅附图4,其示出了本申请一个实施例提供的一种JSON文件解析装置的结构示意图,所述装置包括:
第一获取单元401,用于获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;
第一分配单元402,用于获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;
第二获取单元403,用于所述数据处理服务节点获取对应的所述解析区间任务进行解析。
在一个实施例中,请参阅附图5,其示出了本申请一个实施例提供的一种JSON文件解析装置的结构示意图,所述装置还包括:
第一下发单元404,用于根据所述数据处理服务节点的处理能力下发数据闭合任务。
请参阅附图6,其示出了本申请一个实施例提供的一种电子设备的结构示意图,可以包括:至少一个网络接口602、存储器603和至少一个处理器601。电子设备中的各个组件通过总线系统604耦合在一起。可以理解,总线系统604用于实现这些组件之间的连接通信。总线系统604除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,但是为了清楚说明起见,在附图6中将各种总线都标为总线系统604。
在一些实施方式中,存储器603存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统6031和应用程序6032。
其中,操作系统6031,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种寄出业务以及处理基于硬件的任务。应用程序6032,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本申请实施例方法的程序可以包含在应用程序中。
在上述实施例中,电子设备还包括:存储在存储器603上的至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集可由处理器601执行实现本申请实施例中所述任一JSON文件解析方法的步骤。
在一个实施例中,本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器执行时实现本申请实施例中所述任一JSON文件解析方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的至少一条指令、至少一段程序、代码集或指令集可存储于一非易失性计算机可读取存储介质中,所述的至少一条指令、至少一段程序、代码集或指令集在执行时,可实现本申请实施例中所述任一地图绘制方法的步骤。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,这些均属于本申请的保护范围之内。
Claims (10)
1.一种JSON文件解析方法,其特征是,所述方法包括:
获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;
所述数据处理服务节点获取对应的所述解析区间任务进行解析。
2.根据权利要求2所述的一种JSON文件解析方法,其特征是,所述方法还包括:
根据所述数据处理服务节点的处理能力下发数据闭合任务。
3.根据权利要求2所述的一种JSON文件解析方法,其特征是,所述数据处理服务节点获取对应的所述解析区间任务后,所述方法还包括:
基于所述解析区间任务的开始行号和结束行号,多线程分页获取目标JSON文件数据;
对所述目标JSON文件数据的每一行数据进行解析并转换成tree结构,其中,对行数据是尾节点的标记缺乏父ID标识;
当所述目标JSON文件数据的每一页数据解析完毕后,进行数据闭合匹配形成闭合数据并保存至数据库中。
4.根据权利要求3所述的一种JSON文件解析方法,其特征是,当进行数据闭合匹配后未形成闭合数据时,保留目标JSON文件数据的当前页的节点标签标识以及节点ID,并将每一行数据的其余属性丢弃。
5.根据权利要求4所述的一种JSON文件解析方法,其特征是,当所述目标JSON文件数据解析完毕后,对未闭合数据进行闭合处理形成闭合数据或无法形成闭合数据的节点标记缺乏父ID标识。
6.根据权利要求5所述的一种JSON文件解析方法,其特征是,获取缺乏父ID标识以及未形成闭合的子标签节点,以缺乏父ID标识节点数据为首,依次寻找父ID形成闭合数据。
7.一种JSON文件解析装置,其特征是,所述装置包括:
第一获取单元,用于获取已注册的数据处理服务节点以及每个所述数据处理服务节点的处理能力;
第一分配单元,用于获取待处理JSON解析任务,基于所述待处理JSON解析任务的JSON文件行数、每个所述数据处理服务节点的处理能力分配解析区间任务;
第二获取单元,用于所述数据处理服务节点获取对应的所述解析区间任务进行解析。
8.一种JSON文件解析装置,其特征是,所述装置还包括:
第一下发单元,用于根据所述数据处理服务节点的处理能力下发数据闭合任务。
9.一种电子设备,其特征是,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由所述处理器执行以实现如权利要求1-6任一项权利要求所述的JSON文件解析方法。
10.一种计算机可读存储介质,其特征是,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由处理器执行以实现如权利要求1-5任一项权利要求所述的JSON文件解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110452208.7A CN113128208B (zh) | 2021-04-26 | 2021-04-26 | 一种json文件解析方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110452208.7A CN113128208B (zh) | 2021-04-26 | 2021-04-26 | 一种json文件解析方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113128208A true CN113128208A (zh) | 2021-07-16 |
CN113128208B CN113128208B (zh) | 2024-01-05 |
Family
ID=76780351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110452208.7A Active CN113128208B (zh) | 2021-04-26 | 2021-04-26 | 一种json文件解析方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113128208B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943763A (zh) * | 2017-11-29 | 2018-04-20 | 广州迈安信息科技有限公司 | 一种大文本数据处理方法 |
CN111061927A (zh) * | 2018-10-16 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及电子设备 |
US10725826B1 (en) * | 2017-06-21 | 2020-07-28 | Amazon Technologies, Inc. | Serializing duration-limited task executions in an on demand code execution system |
CN112463735A (zh) * | 2020-11-26 | 2021-03-09 | 四三九九网络股份有限公司 | 一种大体积json文件拆分并按需请求的方法 |
CN112685047A (zh) * | 2020-12-31 | 2021-04-20 | 杭州当虹科技股份有限公司 | 一种基于大文件的快速解析系统 |
-
2021
- 2021-04-26 CN CN202110452208.7A patent/CN113128208B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725826B1 (en) * | 2017-06-21 | 2020-07-28 | Amazon Technologies, Inc. | Serializing duration-limited task executions in an on demand code execution system |
CN107943763A (zh) * | 2017-11-29 | 2018-04-20 | 广州迈安信息科技有限公司 | 一种大文本数据处理方法 |
CN111061927A (zh) * | 2018-10-16 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及电子设备 |
CN112463735A (zh) * | 2020-11-26 | 2021-03-09 | 四三九九网络股份有限公司 | 一种大体积json文件拆分并按需请求的方法 |
CN112685047A (zh) * | 2020-12-31 | 2021-04-20 | 杭州当虹科技股份有限公司 | 一种基于大文件的快速解析系统 |
Non-Patent Citations (1)
Title |
---|
HAOHAO_DING: "一种java处理超大json文件时,解析json字符串内存溢出的解决方案", pages 1 - 15, Retrieved from the Internet <URL:http://t.csdnimg.cn/LqJLg> * |
Also Published As
Publication number | Publication date |
---|---|
CN113128208B (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840083B (zh) | 网页组件模板构建方法、装置、计算机设备和存储介质 | |
CN109684607B (zh) | Json数据解析方法、装置、计算机设备和存储介质 | |
CN110445828B (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN111552838A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN107797933B (zh) | 生成模拟报文的方法及装置 | |
CN113766042A (zh) | 一种容器地址的配置方法、系统、装置、设备及介质 | |
CN112882713B (zh) | 一种日志解析的方法、装置、介质及计算机设备 | |
CN107357885A (zh) | 数据写入方法及装置、电子设备、计算机存储介质 | |
CN110275703B (zh) | 键值对数据的赋值方法、装置、计算机设备和存储介质 | |
CN112187713A (zh) | 报文转换的方法、装置、计算机设备和存储介质 | |
CN112134707B (zh) | 一种针对多个kerberos集群的并发访问方法和装置 | |
CN113128208A (zh) | 一种json文件解析方法、装置及电子设备 | |
CN109408532B (zh) | 数据获取方法、装置、计算机设备和存储介质 | |
CN103473106A (zh) | 一种页面生成的方法及系统 | |
CN111190607B (zh) | 任务插件处理方法和装置、任务调度服务器及存储介质 | |
CN113946615A (zh) | 数据的结构化处理方法、装置、设备及存储介质 | |
CN112835901A (zh) | 文件存储方法及装置、计算机设备、计算机可读存储介质 | |
CN114328486A (zh) | 基于模型的数据质量核查方法及装置 | |
CN115705297A (zh) | 代码调用检测方法、装置、计算机设备以及存储介质 | |
CN112597227A (zh) | 电力配网调度中的信息处理方法、装置及存储介质 | |
CN112131291A (zh) | 基于json数据的结构化解析方法、装置、设备及存储介质 | |
CN111221787A (zh) | 一种文件处理方法及装置 | |
CN110569673A (zh) | 一种数据文件处理方法、装置、设备及储存介质 | |
CN115878924B (zh) | 一种基于双字典树数据处理方法、装置、介质及电子设备 | |
CN110109656B (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 |