最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSON解析和XML解析區(qū)別對比

 更新時(shí)間:2016年10月11日 15:31:22   作者:huang502  
JSON解析和XML解析是較為普遍的兩種解析方式,其中JSON解析的市場分額更大。這篇文章主要介紹了JSON解析和XML解析區(qū)別對比,需要的朋友可以參考下

JSON解析和XML解析是較為普遍的兩種解析方式,其中JSON解析的市場分額更大。本文系統(tǒng)的分析兩種解析方式的區(qū)別,為更好地處理數(shù)據(jù)作準(zhǔn)備。由于目前階段主要是做移動(dòng)開發(fā),所以本文所描述的JSON解析和XML解析均是在安卓環(huán)境下進(jìn)行測試。

首先要明確一點(diǎn),數(shù)據(jù)解析是為了獲取數(shù)據(jù)的每一個(gè)值,對于JSON數(shù)據(jù)而言類似于鍵值對的形式,對于XML而言是標(biāo)簽和值的形式。簡單來說就是要在一個(gè)JSON數(shù)據(jù)或XML數(shù)據(jù)中利用鍵或標(biāo)簽找到對應(yīng)值。

其次要了解一下兩種數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。JSON數(shù)據(jù)分為三種:對象類型、數(shù)組類型、混合類型。對象類型JSON數(shù)據(jù)用大括號包裹,屬性和值相對應(yīng)。數(shù)組類型JSON數(shù)據(jù)可以看成多個(gè)對象類型JSON數(shù)據(jù)組合在一起,用中括號包裹?;旌项愋蚃SON數(shù)據(jù)中既有對象類型又有數(shù)組類型,大括號表示的是對象,中括號表示的是數(shù)組。XML數(shù)據(jù)以標(biāo)簽的形式進(jìn)行存儲(chǔ),通過標(biāo)簽名獲取值。所以無論是JSON解析還是XML解析,都可以先定義一個(gè)雙列集合出來,用于存放數(shù)據(jù)。

JSON數(shù)據(jù)類型:

在安卓環(huán)境下解析JSON數(shù)據(jù)有兩種方式,一種是自定義方法根據(jù)數(shù)據(jù)結(jié)構(gòu)分層解析,另一種是用開源框架。自定義方法進(jìn)行解析時(shí),又可以分為對象解析、數(shù)組解析、綜合解析。對象解析較為簡單,先創(chuàng)建JSON對象,用對象的GetXxx()的方法獲取對應(yīng)的值,然后存儲(chǔ)在集合中,即獲取到JSON數(shù)據(jù)。數(shù)組解析先通過JsonArray對象獲取JSON對象,然后參照對象解析的方法。綜合解析則是在上述兩種解析基礎(chǔ)上完成的。根據(jù)JSON數(shù)據(jù)的結(jié)構(gòu),按照順序一次獲取JSON對象和JsonArray對象知道獲取到所需數(shù)據(jù)。用開源框架進(jìn)行解析基本原理類似,只不過需要提前進(jìn)行導(dǎo)包,并創(chuàng)建一個(gè)方法類來調(diào)用包里的內(nèi)容。

讀取對象類型的JSON數(shù)據(jù):

讀取數(shù)組類型的JSON數(shù)據(jù):

讀取綜合類型的JSON數(shù)據(jù):

用開源框架讀取JSON數(shù)據(jù)的目錄結(jié)構(gòu):

XML解析是邊讀邊解析,方法較為固定,從上到下依次解析。首先創(chuàng)建XmlPullParser解析器,利用解析器設(shè)置要解析的流對象。然后在一個(gè)循環(huán)中判斷標(biāo)簽類型,如果遇到文件結(jié)束標(biāo)(END_DOCUMENT)簽跳出循環(huán),否則進(jìn)入循環(huán)。在循環(huán)中在有兩種情況,若是開始標(biāo)簽(START_TAG),進(jìn)入標(biāo)簽內(nèi)部,根據(jù)標(biāo)簽名判斷要獲取的數(shù)據(jù),當(dāng)標(biāo)簽名和要得到的數(shù)據(jù)名相同時(shí),用nextText()獲取數(shù)據(jù)。若是結(jié)束標(biāo)簽(END_TAG)將獲取的數(shù)據(jù)存入集合。最后一點(diǎn),不要忘記把標(biāo)簽移向下一個(gè)位置,即:type = parser.next()。

XML解析的方法代碼:

為更好的演示效果,本文最終做出的案例是用安卓設(shè)備從Tomcat服務(wù)器上獲取到JSON數(shù)據(jù)和XML數(shù)據(jù),然后進(jìn)行解析,將解析后的結(jié)果展示在安卓設(shè)備上。

JSON原始數(shù)據(jù):

{
"resultcode": "200",
"reason": "查詢成功!",
"result": {
"sk": { 
"temp": "21", 
"wind_direction": "西風(fēng)", 
"wind_strength": "2級", 
"humidity": "4%", 
"time": "14:25" 
},
"today": {
"city": "天津",
"date_y": "2014年03月21日",
"week": "星期五",
"temperature": "8℃~20℃", 
"weather": "晴轉(zhuǎn)霾", 
"weather_id": { 
"fa": "00", 
"fb": "53" 
},
"wind": "西南風(fēng)微風(fēng)",
"dressing_index": "較冷", 
"dressing_advice": "建議著大衣、呢外套加毛衣、衛(wèi)衣等服裝。", 
"uv_index": "中等", 
"comfort_index": "", 
"wash_index": "較適宜", 
"travel_index": "適宜", 
"exercise_index": "較適宜", 
"drying_index": "" 
},
"future": [ 
{
"temperature": "28℃~36℃",
"weather": "晴轉(zhuǎn)多云",
"weather_id": {
"fa": "00",
"fb": "01"
},
"wind": "南風(fēng)3-4級",
"week": "星期一",
"date": "20140804"
},
{
"temperature": "28℃~36℃",
"weather": "晴轉(zhuǎn)多云",
"weather_id": {
"fa": "00",
"fb": "01"
},
"wind": "東南風(fēng)3-4級",
"week": "星期二",
"date": "20140805"
},
{
"temperature": "27℃~35℃",
"weather": "晴轉(zhuǎn)多云",
"weather_id": {
"fa": "00",
"fb": "01"
},
"wind": "東南風(fēng)3-4級",
"week": "星期三",
"date": "20140806"
},
{
"temperature": "27℃~34℃",
"weather": "多云",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "東南風(fēng)3-4級",
"week": "星期四",
"date": "20140807"
},
{
"temperature": "27℃~33℃",
"weather": "多云",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "東北風(fēng)4-5級",
"week": "星期五",
"date": "20140808"
},
{
"temperature": "26℃~33℃",
"weather": "多云",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "北風(fēng)4-5級",
"week": "星期六",
"date": "20140809"
},
{
"temperature": "26℃~33℃",
"weather": "多云",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "北風(fēng)4-5級",
"week": "星期日",
"date": "20140810"
}
]
},
"error_code": 0
}

解析其中的“future”數(shù)據(jù),結(jié)果如下:

XML原始數(shù)據(jù):

<?xml version="1.0" encoding="UTF-8" ?> 
<channel>
<item>
<title>軍報(bào)評徐才厚</title> 
<description>人死賬不消 反腐步不停,支持,威武,頂,有希望了。
</description>
<image>http://192.168.1.103:8080/img/a.jpg</image>
<type>1</type>
<comment>163</comment>
</item>
<item>
<title>女司機(jī)翻車后直奔麻將室</title> 
<description>女司機(jī)翻車后直奔麻將室,稱大難不死手氣必紅
</description>
<image>http://192.168.1.103:8080/img/b.jpg</image>
<type>2</type>
</item>
<item>
<title>小伙當(dāng)“男公關(guān)”以為陪美女</title> 
<description>來源:中國青年網(wǎng),小伙當(dāng)“男公關(guān)”以為陪美女,上工后被大媽嚇怕 </description>
<image>http://192.168.1.103:8080/img/c.jpg</image>
<type>3</type>
</item>
<item>
<title>男子看上女孩背影欲強(qiáng)奸</title> 
<description> 來源:新京報(bào), 看到正臉后放棄仍被捕
</description>
<image>http://192.168.1.103:8080/img/d.jpg</image>
<type>1</type>
<comment>763</comment>
</item>
</channel>

解析后的成果展示:

至此,基本完成JSON解析和XML解析。

以上所述是小編給大家介紹的JSON解析和XML解析區(qū)別對比,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

深水埗区| 马尔康县| 广灵县| 鄂温| 琼结县| 汤阴县| 图木舒克市| 美姑县| 绥化市| 佛山市| 丁青县| 静安区| 会昌县| 通城县| 偏关县| 克山县| 巴林左旗| 曲周县| 永顺县| 浏阳市| 湖南省| 民丰县| 定日县| 南充市| 兴化市| 福州市| 屯留县| 洛川县| 巴塘县| 青阳县| 呼伦贝尔市| 昭觉县| 西安市| 宣恩县| 温宿县| 德州市| 灵台县| 宝坻区| 太和县| 浦城县| 高安市|