一种多层嵌套的json格式数据的命名解析方法
【专利摘要】一种n层嵌套的json格式数据的命名解析方法,包括以下步骤:首先,以n层嵌套的json格式数据为基础建立数据源;然后,以键值对为最小单元由外而内依次解析数据;最后,判断是否满足终止条件,满足终止条件则生成的string为解析得到的非嵌套的json格式数据。本发明提供一种在保证数据交换和解析准确性的基础上,提高数据交换和解析效率的n层嵌套的json格式数据的命名解析方法。
【专利说明】
一种多层嵌套的json格式数据的命名解析方法
技术领域
[0001] 本发明涉及一种通信网络信息、网络规划与通信协议等应用领域,尤其涉及的是 一种多层嵌套的json格式数据的命名解析方法。
【背景技术】
[0002] 随着信息化工业化的快熟发展,企业的信息化水平不断提高,信息交换的不畅通 也随之成为信息化建设的一个重大瓶颈。数据交换作为各种计算机网络应用的重要组成部 分、已经逐渐成为解决"信息孤岛"现象的主要手段、也是当前信息化建设必须面对的难题。 随着Web技术的飞速发展,基于B/S架构的应用越来越丰富,客户端和服务器端数据交换、数 据解析的方式也越来越多。在传统的工程应用中,客户端和服务器之间数据交换和数据解 析的传统方式,交换和解析的效率较低,严重的影响基于B/S架构系统的系统效果和用户体 验,人们在力求寻找一种数据传输开销小的数据交换格式,以提高数据传输的效率,以使得 应用程序得到高效的执行,用户的使用体验更好。
[0003] json(JavaScript Object Notation)是一种轻量级的数据交换格式是基于 ECMAScript的一个子集。json采用完全独立于语言的文本格式,但是也使用包括C、C++、C#、 Java、JavaScript、Perl、Python等类似于C语言家族的习惯。这些特性使json成为理想的数 据交换语言。易于人阅读和编写,同时也易于机器解析和生成,大大提升网络传输速率。 json格式数据的数据格式比较简单,易于读写,格式经过压缩,占用带宽比较小,同时支持 多种语言,便于服务器端解析。对于大多数Web应用来说,根本不需要复杂的XML来传输数 据,json数据交换格式提供了更好的简单性和灵活性。
[0004] XML扩展标记语言用于标记数据、定义数据类型,是一种允许用户对自己的标记语 言进行定义的源语言。XML最大的优势在于对各种数据的管理,任何系统都可以通过XML解 析器来读取XML数据,因此它的数据可以通行各处,而不用担心系统不支持的问题。由于XML 具有很好跨平台性和通用性,逐渐作为中间媒质来完成数据交换和共享,将用于异构数据 库数据交换,较好地克服传统数据交换方式的缺点。然而,XML文件比较庞大,文件格式比较 复杂,传输时占用带宽比较大,服务器端和客户端都需要花费大量代码来解析XML,导致服 务器端和客户端代码变得异常复杂且不易维护,客户端和服务器解析XML要花费较多的资 源和时间。特别是,在不同浏览器之间解析XML的方式不一致,需要重复编写很多代码,开发 效率低下。
[0005] 因此,目前的数据解析技术存在着很多缺陷,需要我们改进。
【发明内容】
[0006] 为了克服已有命名解析方法的数据交换和解析效率较低的不足,本发明提供一种 在保证数据交换和解析准确性的基础上提高数据交换和解析效率的多层嵌套的json格式 数据的命名解析方法。
[0007] 本发明解决其技术问题所采用的技术方案是:
[0008] 一种多层嵌套的json格式数据的命名解析方法,所述命名解析方法包括以下步 骤:
[0009] 1)参数初始化:设定一组多层嵌套的json格式数据獻=:丨:丨…, Νωηβλ(η\}ι: {NamekHl: valued,···,Name1^ : valued},-··}},···,Name((n :{···,Name^}1: : va&4r ·-, : Η,其中 __ 示json格式数据键值·对应的值,n表示jS0n格式数据嵌套的层数,m表示第 n层对应的 j son格式数据的组数,k,p,q,1,λ用于标识区分j son格式数据的键和值且{k,p,q,l,AeN+| 0>k>p>q>l>A};
[0010] 2)解析和命名json格式数据,过程如下:
[0011] 2.1)判断str是否为json格式数据,如果str是json格式数据,则进入步骤2.2),否 则转入步骤2.6);
[0012] 2.2)设定11=1,111=1氺=1,取]_8〇11格式数据一组键值对,键值为勤此=从/膨),", 值为= Vfif&e:;
[0013] 2.3)判断k>A是否成立,如果条件成立,进入步骤2.4),否则转入步骤2.8);
[0014] 2.4)判断value是否为json格式数据,如果条件成立,进入步骤2.5),否则转入步 骤 2.6);
[0015] 2 · 5 )以w/?4 ·作为新的j s ο η格式数据,键值为,值为,将 施7?心和最二"拼接形成施we =施測
[0016] 2.6)将该键值和值写入新的json格式数据string中,进入步骤2.7);
[0017] 2· 7)m=m+l,k=k+l,取json格式数据,键值为施腿>,#謂
[00?8] 2.8)解析结束,生成新的无嵌套的json格式数据string为得到的结果。
[0019]本发明的技术构思为:首先,以η层嵌套的json格式数据为基础建立数据源;然后, 以键值对为最小单元由外而内依次解析数据;最后,判断是否满足终止条件,满足终止条件 则生成的string为解析得到的非嵌套的json格式数据。
[0020] 本发明的有益效果为:在保证数据交换和解析准确性的基础上、提高数据交换和 解析效率。
【附图说明】
[0021] 图1是一种η层嵌套的json格式数据的命名解析方法示意图。
【具体实施方式】
[0022] 下面结合附图对本发明作进一步描述。
[0023]参照图1,一种多层嵌套的json格式数据的命名解析方法,包括以下步骤:1)参数 初始化:设定一组多层嵌套的json格式数据劝··=.丨: |;ν<7〃κ·^ :丨…, Name^\)X: {NameknX: value^, , Nam e1^ : ναΙηβζη},···}},···,ΝαηιβΙ: { ,Ναιηβ^ : {池騰: w/狀^,…,池 ?: v油e〗,"}}},其中施表示j son格式数据的键值,w/wei表 示json格式数据键值Afenei对应的值,η表示json格式数据嵌套的层数,m表示第η层对应的 j son格式数据的组数,k,p,q,1,λ用于标识区分j son格式数据的键和值且{k,p,q,l,AeN+| 0
[0024] 2)解析和命名json格式数据,过程如下:
[0025] 2.1)判断str是否为json格式数据,如果str是json格式数据,则进入步骤2.2),否 则转入步骤2.6),如图1中判断str是否为json格式数据;
[0026] 2.2)设定n = l,m=l,k = l,取json格式数据一组键值对,键值为, \M.% vaiue = valueknm ;
[0027] 2.3)判断k
[0028] 2.4)2.4)判断value是否为json格式数据,如果条件成立,进入步骤2.5),否则转 入步骤2.6 ),如图1中判断条件B是否成立;
[0029] 2 · 5)以v-ei,作为新的json格式数据,键值为#_e(=1)m,值为να/we^,,,,将 勤;和油赃^?拼接形成施膨=施騰丨 >,,恭 1,拼接形成键值;
[0030] 2.6)将该键值和值写入新的json格式数据string中,进入步骤2.7),如图1中写入 新的j s on格式数据s tr i ng;
[0031 ] 2.7)m=m+l,k=k+l,取json格式数据,键值为池騰=偷贈二?,值为va/?e = να/狀二1}, 转入步骤2.3 ),其中string为生成的新的无嵌套的json格式数据,如图1中m与k分别加1,拼 接形成新键值;
[0032] 2.8)解析结束,生成新的无嵌套的json格式数据string为得到的结果。
[0033]本实施例以字符串.V"- = (义:.丨八'训丨:"/;i〃7gr/;ow",;V训: "Λ.Λα喂 iViwg : "知诉叹"}为实施例,一种多层嵌套的j son格式数据的命名解析方法,其中包含以 下步骤:
[0034] 1)参数初始化:设定一组η层嵌套的json格式数据 sir = ·\.Ναη?(,[η : {Name^ : "hangzhou" , Name ',: :''shanghai" )., Nanuj~-. : ''beijing" j- 嫩丨t、. .、羅腕、.摘細匕.表不j s ο n格式数据的键值,〃 h a n g h z o u 〃、" 值;
[0035] 2)解析和命名json格式数据:
[0036] 2· 1)判断str是否为json格式数据,如果str是json格式数据,则进入步骤2 · 2),否 则转入步骤2.6);
[0037] 2.2)设定n = l,m=l,k = l,取json格式数据一组键值对,键值为A^w=,他皿·匕", 值为 va/tte = ;
[0038] 2.3)判断k