json结构体,json结构有哪些复杂结构
JSON JavaScript Object Natation是一种轻量级的数据交换格式,非常适合服务器和JavaScript之间的交互。JSON便于人们阅读和编写。同时便于机器分析和生成。JSON采用了完全独立的语言文本格式,但也使用了类似于C语言家族(包括C、C、C #、Java、JavaScript、Perl、Python等)的习惯。).这些特性使JSON成为一种理想的数据交换语言。
XML也是一种数据交换格式,但是XML标签很多,往往使得标签比要传输的数据多,会增加字符传输的负担。
JSON有两种结构:
1.名称/值对的集合。在不同的语言中,它被理解为对象、记录、结构、字典、哈希表、键列表或关联数组。
2.值的有序列表。在大多数语言中,它被理解为数组。
Python的json模块提供了一种编码和解码JSON数据的简单方法。两个主要的函数是json.dumps()和json.loads(),比pickle等其他序列化函数库的接口要少很多。下面演示了如何将Python数据结构转换为JSON:
importjson
数据={
名称: ACME ,
股份:100,
“价格”:542.23英镑
}
json_str=json.dumps(data)
下面演示了如何将JSON编码的字符串转换回Python数据结构:
data=json.loads(json_str)
如果处理的是文件而不是字符串,可以使用json.dump()和json.load()对json数据进行编码和解码。例如:
#编写JSON数据
withopen(data.json , w )为f:
json.dump(data,f)
#读回数据
withopen(data.json , r )为f:
data=json.load(f)
Json.dumps和json.loads示例以下示例演示了Python数据结构到Json的转换:
#!/usr/unanything moonlight/Python 3 import JSON # Python字典类型转换为JSON object data={no: 1, name: W3CSchool ,URL : 3358 www . W3C school . cn } json_str=JSON . dumps(data)print( Python raw data:,repr(data))print (JSON object:,JSON _ STR)执行上述代码,输出结果为:
Python repr数据:{url: http://www.w3cschool.cn , no: 1, name: w3cschool} JSON对象:{url: 3358 www.w3cschool.cn , no: 1, name :
按照上面的例子,我们可以将JSON编码的字符串转换回Python数据结构:
#!/usr/unconly moonlight/python 3 import json # Python字典类型转换为JSON对象data1={no: 1, name: W3C school ,URL : 3358 www . W3C school . cn } JSON _ STR=JSON . dumps(data1)print( Python raw data:,repr(data1))print (JSON object:,Json_str)#将JSON对象转换为Python字典data2=JSON . loads(JSON _ STR)print( data2[ name )执行上述代码后,输出结果是
Ython原始数据:{name: W3CSchool , no: 1, URL : 3358 www . W3C School . cn } JSON对象:{name: W3C School , no: 1,URL : 3358 www . W3C School . cn } data 2[ name ]:W3C School data 2[ URL ]:http://www.w3cschool.cn如果处理的是文件而不是字符串,可以使用json.dump()和json.load()进行编码和例如:
#用open (data.json , w )写json数据为f: json.dump (data,f) #用open (data.json , r )读数据为f: data=json.load (f)数据交换格式主要有两种:XML和JSON。
3 iOS开发的常见分析:
3.1 XML解析:SAX解析和DOM解析
XML解析工具:NSXMLParser、GDataXMLNode、TouchXML、KissXML等。
3.2 JSON解析
解析工具:JSONKit、NSJSONSerialization、TouchJSON、SBJSON,其中NSJSONSerialization(系统提供的解析类性能最好,解析效率最高)。
二 XML数据结构
- XML -
1可扩展标记语言:存储数据和传输数组。
像JSON解析一样,它经常用于交互式数据格式。
通用XML文档(XML Document)
4例如:
学生[标签,表示开始]
您/姓名
爱好女性/爱好
/学生[标签,表示结束]
5 XML文档的语法:
5.1文档声明:在XML文档的前面,必须写一个文档声明。
一个最简单的说法:xml版本=1.0 ?
使用b encoding属性描述文档字符编码:xml版本=1.0 编码=UTF-8 ?
5.2元素:包含开始标签和结束标签的元素。
a拥有一切:说出你的名字
b无元素内容:名称/名称
而且,一个元素可以嵌套几个子元素,但是不允许交叉嵌套。
学生
学生[标签,表示开始]
您/姓名
爱好女性/爱好
/学生[标签,表示结束]
学生
* *注意:1规范的XML文档最多只有一个根元素,其他都是根元素的后代。
在XML中,空格和换行符被视为具体内容,例如A和B是不同的。
你/名字
b名称
你们
/名称
5.3属性:一个元素可以有多个属性,比如
Video name= Minions hobby= apple /[视频元素有两个属性:name name,hobby]
*注意:属性的值必须用“”或“”括起来
*由属性表示的信息也可以由子元素表示,例如:
录像
奴才/姓名
爱好/爱好
/视频
6 XML文档的分析:
选择name元素中的内容:name Minions /name。
或者提取video元素中name和hobby的值:video name= Minions hobby= apple /
7 - SAX解析XML的简单API
SAX:基于事件驱动解析(使用协议回调机制)逐行分析数据。
NSXMLParser是iOS自带的XML解析类,它通过SAX解析数据。
解析过程由NSXMLParserDelegate协议方法回调。
学生
学生
您/姓名
爱好女性/爱好
/学生
/学生
一种解析方法,逐行解析。
A.1打开XML文档
A.2开始节点(开始选项卡)
A.3逐行解析
A.4发现元素的内容。
A.5提取物含量
A.6结束节点(结束标签)
A.7循环开始,解析完全完成,直到遇到根元素的结束标记。
iOS B中解析XML的方法有很多。
B.1苹果原生:NSXMLParser - SAX解析,简单易用。
B.2第三方框架:
1 libxm12:纯c语言,默认包含在iOS SDk中。
gdata XML:DOM的解析方法由Google开发,底层基于libxml2。
8 - DOM解析-
读入整个XML文档的文档对象模型(Document Object Model)会在内存中构建一个树结果(节点数),通过遍历树结构中的任意一个XML节点来读取其属性和值。一般来说,可以借助XPath直接查询XML节点。
步骤b:
B.1获取文件GDataXMLNode.h/m,将GDataXMLNode.m添加到所需项目中。
B.2将类库libxml2.tbd添加到libxml2.dylib(iOS7项目(iOS7之前)
B.3在项目的“构建设置”页面中找到“头文件搜索路径”项,添加/usr/include/libxml2。
B.4将GDataXMLNode.h文件导入头文件。如果编译成功,GDataXMLNode将被成功添加。
属性和方法
名称采用标签名称。
AttributeForName采用属性节点
Value接受标签之间的字符串值。
根元素子节点
三 JSON 数据结构
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,是基于JS的子集。它是一种完全独立的语言文本格式,易于读写,易于机器解析和生成,非常适合服务器和客户端的交互。
2:标准JSON格式:Key必须使用双引号。
JSON数据结构的语法
3.1中的数据类型:字符串、数值、布尔值、对象、数组
3.2文件中有两种结构:
对象,数组
3.3 JSON-OC:两者对应的数据类型
JSON中的大括号{},OC中的NSDictionary
JSON B中的方括号[]和OC中的NSArray
c JSON中的双引号表示OC中的NSString
4 JSON数据结构的功能
数据交换、内容管理、配置文件
iOS中常见的5种JSON解析方法:
5.1配乐(自带):NSJSONSerialization(最佳表现)
NSJSONSerialization包含两种通过不同数据形式解析JSON数据的方法。
5.1.1 jsonobjectwithdata:选项:错误:使用缓冲区数据解析JSON
5 . 1 . 2 Writejsonobject:to stream:options:错误:使用文件流的行解析JSON
5.2第三方:JSONKit、SBJSON、TouchJSON(从左到右依次,越来越差)
objectFromJSONData
XML和JSON数据结构的优缺点
1.XML与JSON两种数据结构的优缺点
1 XML
优点:\u2028
统一格式,符合标准
很容易与其他系统远程交互,数据共享更方便。
缺点:
XML文件格式文件庞大复杂,传输占用带宽
服务器端和客户端都需要花费大量的代码来解析XML,无论维护服务器端和客户端的代码有多复杂和困难。
不同的客户端,不同的浏览器以不同的方式解析XML,需要重复编写大量代码
服务器和客户机解析XML需要资源和时间。
2 JSON
优点:\u2028
数据格式简单,读写方便,格式都是压缩的,占用带宽小\u2028
很容易解析这种语言。
支持多种语言,包括ActionScript、C、C #、ColdFusion、Java、JavaScript、Perl、PHP、Python、Ruby等服务器端语言。这便于服务器端解析
由于JSON格式可以直接用于服务器端代码,大大简化了服务器端和客户端的代码开发,但完成的任务保持不变,易于维护\u2028
缺点:\u2028
不如XML格式流行和广泛使用,不如XML通用
目前,JSON格式还处于在Web服务中推广的初级阶段。
2.2的底层实现。JSON和XML解析是1 XML。
两种Xml解析方法,DOM和SAX。
DOM需要读取整个XML文档(文档驱动),SAX是事件驱动的,不需要读取整个文档。文档的读取过程也是SAX的解析过程。
SAX仅仅意味着顺序扫描XML文档。当扫描文档的开头和结尾以及元素的开头和结尾时,会触发相应的事件处理函数,事件处理函数会采取相应的动作。处理后,扫描将继续,直到文档结束,解析将完成。
当解析一个DOM XML文件时,它会将XML文件的所有内容读入内存,然后允许你使用DOM API操作XML树。也就是说,DOM会将XML以树的形式读入内存,然后通过相应的API对XML树进行操作,从而达到解析XML文件的目的。
2 JSON
json的底层原理是遍历字符串中的字符,最后根据特殊的帮助字符来区分,比如{}、[]、sign等。{}是字典,[]代表数组,而:sign是字典的键和值的分水岭。最后,json数据被转换成字典,然后字典被KVC转换成模型。
3选择推荐
1) XML用于复杂的数据结构,JSON可以用于简单的数据结构。
2)在互联网应用的数据传输上,提倡JSON。
3)鉴于前端和后端的区别,服务器端可以用XML,前端可以用JSON,两者之间的转换在服务器端完成。这样,我们可以取长补短
喜欢的朋友可以加QQ群813622576,群里有免费资料,大家一起交流学习!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。