一种Json格式数据解析方法及数据接收端的制作方法_2

文档序号:9597165阅读:来源:国知局
rray的基本格式如下:
[0045]{"people":[
[0046]{"firstName":"Brett", "lastName":"McLaughlin", "email":"aaaa"},
[0047]{"firstName":"Jason", "lastName":"Hunter", "email":"bbbb"},
[0048]{"firstName":"Ell1tte", "lastName":"Harold", "email":"cccc"}
[0049]]} o (例 I)
[0050]由最外层大括号括起来的是整个Json,由中括号括起来的是名称(key) people的值(value)。在中括号中又有三个相对独立的由大括号括起来的Json。这种格式的Json就是JsonArray,它特有的格式符是中括号和多次出现的大括号,如果值(value)是由一对中括号或多对大括号括起来的就可以确定它是JsonArray。
[0051]JsonObject 就是 Json, JsonArray 是用来表现 Array 和 list 的。
[0052]故而所述判断所述Json格式数据中是否包含JsonArray,具体为:
[0053]判断所述Json格式数据中是否包含格式为:第一大括号组、位于所述第一大括号组内的第一中括号组、位于所述第一中括号组中的第二大括号组的字符串。
[0054]步骤S103中,首先需要区分JsonArray key与value:
[0055]JsonArray 是由 JsonObject 组成的 list,list 中每一元素都遵循 JsonObject 的标准格式。利用JsonObject标准格式的特点,使用字符窜分析的方法区分list中每一个元素的key和value。
[0056]JsonObject是一个有特殊格式的字符串,因此所有字符串遍历的方法都适用于JsonObject。由(2)中所举例子可知如果在JsonObject中有中括号出现即可说明JsonObject中含有JsonArray。如果要获得完整的JsonArray就必须对JsonObject完全遍历。
[0057]如例2:
[0058]{"keyl": "valuel", //key2//: //value2//, ^keyS^: ^valueS^, ^jsonArray I ^: [{"firstNam e〃:〃Brett〃,〃lastName〃:〃McLaughlin〃,〃email〃:〃aaaa〃},
[0059]{"firstName":"Jason", "lastName":"Hunter", "email":"bbbb"},
[0060]{"firstName":"Ell1tte", "lastName":"Harold", "email":"cccc"}
[0061]]}} o JsonObject的名称(key)和值(value)都是由大括号括起来的以逗号分隔的。JsonArray本质是一个由中括号括起来的特殊的值(value)。这个值(value)又是由JsonObject组成。因此首先遍历整个JsonObject通过中括号找出JsonArray,并把它从JsonObject中取出,再分别用split方法可以获取每一对名称(key)和值(value)。
[0062]然后,完成使用字符串解析方法,依据JsonObject标准格式中key和value对应法则完成keyl和valuel的--对应。由例2可知,JsonArray实际是有特殊值(value)的名称(key)/值(value)对。值(value)是由标准的JsonObject组成。用split方法可以获取每一对名称(key)和值(value)。
[0063]最后,依据JsonArray是由JsonObject组成的list,解析后的JsonArray作为list存储并输出。可用标准的list取值方法取出每对keyl和valuel的值。
[0064]步骤106中,利用JsonObject标准格式的特点,使用字符窜分析的方法区分key2和value2。获取名称(key)和值(value)的方法都用split。
[0065]其中,还可以依据JsonObject标准格式中key和value对应法则完成key2和value2的--对应。名称(key)和值(value)是使用split方法一对一对取出来的,因此名称(key)和值(value)必定是--对应的。
[0066]步骤S107中,解析后的JsonObject每一对key和value作为list中一个元素存储并输出,可用标准的list取值方法取出每对key和value的值。JsonObject中的名称(key)和值(value)使用split方法一对一对取出,并放入list。使用list标准遍历方法可取出每一对名称(key)和值(value)。
[0067]名称(key)是值(value)的唯一标识,在JsonObject中不可重复。值(value)是数据,获取名称(key)和值(value)就获取了数据,完成了数据传输。
[0068]JsonArray (如果含有)和JsonObjcet的解析结构组成一个大的list作为最终结果存储并输出,可用标准的list取值方法取出每对key和value的值。例3包含JsonArray和 JsonObject.
[0069]为了使本领域所属技术人员能够进一步的了解本发明实施例所介绍的Json格式数据解析方法,下面将以该方法在具体实施过程中的应用对其进行介绍。
[0070]第二方面,基于同一发明构思,本发明实施例提供一种种数据接收端,请参考图2,包括:
[0071]接收模块20,用于接收数据发送端发送的Json格式数据;
[0072]分析模块21,用于通过字符串分析,通过JsonArray对应的特殊格式符,判断所述Json格式数据中是否包含JsonArray ;
[0073]第一提取模块22,用于在所述Json格式数据中包含所述JsonArray时,提取所述JsonArray 的 key 和 value ;
[0074]解析模块23,用于使用字符串解析方法,依据JsonObject标准格式中key和value对应法则完成所述JsonArray的key和value的--对应;
[0075]第一输出模块24,用于将key和value存入List并输出;
[0076]对应模块25,用于使用字符串解析方法,依据JsonObject标准格式中key和value对应法则,完成所述JsonObject的key和value的--对应;
[0077]第二输出模块26,用于将解析后的JsonObject每一对key和value作为所述List中一个元素存储并输出。
[0078]可选的,所述分析模块21,具体用于:
[0079]判断所述Json格式数据中是否包含格式为:第一大括号组、位于所述第一大括号组内的第一中括号组、位于所述第一中括号组中的第二大括号组的字符串。
[0080]请参考图3,该Json格式数据解析方法包括以下步骤:
[0081]步骤S300:开始阶段。
[0082]步骤S301:接收标准的Json格式数据:
[0083]数据接收端接收数据发送端发送的数据,数据格式为Json.数据以Json格式进行传输是在程序开发时规定了的。Json是一种完全独立于语言的文本格式,Json的数据书写格式是:名称(key):值(value),例如:"Name": "John"。第一对双引号中是名称(key),第二对双引号中是值(value)。所有符合以上书写格式的文本字符串都是Json0
[0084]步骤S302:判断数据中是否含有JsonArray:
[0085]通过字符串分析,通过JsonArray对应的特殊格式符,判断数据中是否包含JsonArray,并取出JsonArray。JsonArray的基本格式如下:
[0086]{"people":[
[0087]{"firstName":"Brett", "lastName":"McLaughlin", "email":"aaaa"},
[0088]{"firstName":"Jason", "lastName":"Hunter", "email":"bbbb"},
[0089]{"firstName":"Ell1tte", "lastName":"Harold", "email":"cccc"}
[0090]]} o (示例一)
[0091]由最外层大括号括起来的是整个Json,由中括号括起来的是名称(key) people的值(value)。在中括号中又有三个相对独立的由大括号括起来的Json。这种格式的Json就是JsonArray,它特有的格式符是中括号和多次出现的大括号,如果值(value)是由一对中括号或多对大括号括起来的就可以确定它是JsonArray。
[0092]JsonObject 就是 Json,JsonArray 是用来表现 Array 和 list 的。
[0093]步骤S303:区分 JsonArray key 与 value:
[0094]JsonArray是由JsonObject组成的list (列表),list中每一元素都遵循JsonObject的标准格式。利用JsonObject标准格式的特点,使用字符串分析的方法区分list中每一个元素的key和value。
[0095]JsonObject是一个有特殊格式的字符串,因此所有字符串遍历的方法都适用于JsonObject。由(示例一)中所举例子可知如果在JsonObject中有中括号出现即可说明Json
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1