XML介紹
XML:可擴展標(biāo)記語言掐场,標(biāo)準通用標(biāo)記語言的子集每聪,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言狞洋。
XML文檔有兩種解析模式:一種是SAX(從根元素開發(fā)一個接著一個的解析)煌往,一種是DOM(將整個XML文檔加載進內(nèi)存解析)祈纯。
在iOS開發(fā)中常用的XML的解析方法有兩種,一種是使用蘋果原生的NSXMLParser來解析(該方法基于SAX),一種是使用谷歌公司提供的第三方框架GDataXML來解析(該方法基于DOM)楣号。
XML數(shù)據(jù)格式:
JSON介紹
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式棍厌。它基于ECMAScript的一個子集。?
JSON采用完全獨立于語言的文本格式竖席,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++敬肚、C#毕荐、Java、JavaScript艳馒、Perl憎亚、Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言弄慰。 易于人閱讀和編寫第美,同時也易于機器解析和生成。
JSON是一種取代XML的數(shù)據(jù)結(jié)構(gòu)陆爽,和XML相比什往,它更小巧但描述能力卻不差,由于它的小巧所以網(wǎng)絡(luò)傳輸數(shù)據(jù)將減少慌闭,從而加快速度别威。
那么躯舔,JSON到底是什么?
JSON就是一串字符串 只不過元素會使用特定的符號標(biāo)注。
JSON 語法規(guī)則
1省古、數(shù)據(jù)在鍵值對中
2粥庄、數(shù)據(jù)由逗號分隔
3、花括號保存對象{ }
4豺妓、方括號保存數(shù)組 ?[ ]
5惜互、“?" 雙引號內(nèi)是屬性或值
6、: 冒號表示后者是前者的值(這個值可以是字符串琳拭、數(shù)字训堆、也可以是數(shù)組或?qū)ο?
{"name": "Michael"} 可以理解為是一個包含name為Michael的對象
[{"name": "Michael"},{"name": "Jerry"}]就表示包含兩個對象的數(shù)組
當(dāng)然了,你也可以使用{"name":["Michael","Jerry"]}來簡化上面一部,這是一個擁有一個name數(shù)組的對象
1、{ 字典 }
2臀栈、{ 字典里包含 {字典 } }
3蔫慧、{ 字典里包含數(shù)組 [ 且數(shù)組里包含 { 字典 } ] }
4、{ 字典里包含數(shù)組 [ 且數(shù)組里包含 { 字典 {字典再包含字典 } } ] }
iOS自帶JSON解析方法
NSError*error;
NSDictionary*dict = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableLeaveserror:&error];
JSON數(shù)據(jù)格式
總結(jié)
1权薯、JSON和XML都是一種用來表示數(shù)據(jù)的一種數(shù)據(jù)格式姑躲,JSON更加輕量級。
2盟蚣、服務(wù)器返回的數(shù)據(jù)通常是JSON或者XML黍析,JSON數(shù)據(jù)格式和OC對象中字典和數(shù)組有些相似,XML又稱為XML文檔屎开,XML的語法結(jié)構(gòu)由三部分構(gòu)成分別是文檔聲明阐枣,元素和屬性。
3奄抽、如果服務(wù)器返回的數(shù)據(jù)是JSON蔼两,那么在開發(fā)中通常需要對JSON數(shù)據(jù)進行反序列化處理,把JSON數(shù)據(jù)轉(zhuǎn)換為OC對象逞度。
4额划、如果服務(wù)器返回的數(shù)據(jù)是XML格式的,那么需要對XML文檔進行解析档泽,解析XML的方式有兩種俊戳,分別是SAX(從根元素開始解析)和DOM(先把整個XML文檔加載進內(nèi)存再解析)