JSON數據格式分析 - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

您當前位置>首頁 » 新聞資(zī)訊 » 技術(shù)分享 >

JSON數據格式分析

發表時間:2020-10-19

發布人:葵宇科技

浏覽次數:30

1、JSON介紹


       JSON是一種數據構造比較簡單,輕量級的,易于存儲的數據構造情勢。很便利人的浏覽,也便利機械的編寫和(hé)解析。
       JSON是一種完全自力于文(wén)本說話的文(wén)本構造,我們既可(kě)以在js代碼中(zhōng)寫json數據,也能在java、php等說話中(zhōng)應用這種文(wén)本情勢。

2、JSON構造分析


       JSON隻有兩種數據構造模型:數組和(hé)對象。數組常用的表示是JSONArray,對象常用的表示是JSONObject。
       JSON的存儲結構成取的是鍵值對的情勢表示的,熟悉JAVA開辟的人應當很清跋扈,是實際上是map的存儲方法,一個(gè)key對應一個(gè)value。當然,在不合說話中(zhōng),可(kě)能懂得方法上會有不合的差别,的數據構造中(zhōng)可(kě)能被懂得為數據字典,C中(zhōng)可(kě)能被懂得為構造體等數據類型。關(guān)于這個(gè),等下(xià)我們會舉例解釋。

3、JSON數據舉例


       可(kě)能有的人對json數據情勢并不熟悉,這裡給出一個(gè)json數據的示例,這是大年夜一段代碼中(zhōng)朝長進步出來的内容,可(kě)能大年夜家看起來會認為很奇怪,然則這是一個(gè)完全的json格式的字符串,包含了json定義的兩中(zhōng)數據格式,數組和(hé)對象:
{
"id": "20150104A000SB00",
"thumbnails_qqnews": [
"http://inews.gtimg.com/newsapp_ls/0/34260782_150110/0"
],
"thumbnails": [
"http://inews.gtimg.com/newsapp_ls/0/34260782_150110/0"
],
"articletype": "0",
"timestamp": 1420373100,
"time": "2015-01-04 20:05:00",
"commentid": "1074737367",
"url": "http://view.inews.qq.com/a/20150104A000SB00",
"title": "武媚娘傳奇→武大年夜頭傳奇",
"tag": [ ],
"abstract": "漢子(zǐ)在年青的時刻都欲望能擁有一個(gè)花(huā)枝飄揚,外表光鮮亮(liàng)麗(lì)的那種女人。可(kě)是跟着歲月(yuè)的沉澱,尤其是當他有了本身的一番事業(yè)和(hé)豐富的人生經曆時,就會發明本身當初的設法主意是多麼竽暌棺稚,因為,一個(gè)根本就不敷!",
"author": [ ],
"chlid": "1796",
"origUrl": "http://m.pengfu.com/content/1127642/",
"show_expr": 1,
"flag": "0",
"picShowType": 0,
"chlname": "捧腹網",
"chlmrk": "精選搞笑圖片,無節操、有内涵、巨險惡、神答複,看點多,笑點多!",
"chlsicon": "http://pnewsapp.tc.qq.com/newsapp_ls/0/om_407743_100100/0",
"chlicon": "http://pnewsapp.tc.qq.com/newsapp_ls/0/om_407743_100100/0",
"source": "捧腹網",
"wechat": "pengfuwang001",
"PlacementId": "9079537218569440795",
"SubAdOn": 0,
"commentPlacementId": "",
"openAdsComment": 0
}

4、解析方法


       在不合的說話中(zhōng),可(kě)能有不合的解析方法,這裡我們隻評論辯論在Android情況中(zhōng)的解析方法,與java中(zhōng)是一緻的。
       前面我們說過,JSON是采取的map集合情勢的封裝,是鍵值對的情勢,那麼我們在掏出數據的時刻,就會采取get辦法,如(rú)下(xià)兩句代碼:
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject msgJsonObject = jsonObject.getJSONObject("msg");
這兩句代碼的意思是說,我們将獲得的json字符串,實例化成為一個(gè)json對象,然後在這個(gè)json對象中(zhōng),獲取獲得msg這個(gè)對象。
JSONArray temp = product.getJSONArray("photos");
int length = temp.length();
for (int i = 0; i < length; i++) {
	String msg = temp.optString(i);
	imgList.add(msg);
}
這段代碼的意思是大年夜product這個(gè)json對象中(zhōng),獲得一個(gè)名為photos的json數組對象,然後将之存儲在一個(gè)集合中(zhōng)。
product.getString("title")
這一句代碼就比較簡單輕易懂得了,意思是獲取一個(gè)title的對象,而這個(gè)對象是一個(gè)String類型的對象。

5、總結


        在膳绫擎的json解析中(zhōng),我們隻是簡單的采取了一些比較重要的代碼片段,并沒有完全的┞飯示若何解析一段代碼,這裡有兩個(gè)問(wèn)題須要留意:
(1)、在處理json字符串的時刻,須要處理一個(gè)異常,名為JSONException,平日是json的數據格式纰謬或者數據不完全。
(2)、在獲取json字符串中(zhōng)的值的時刻,如(rú)不雅試用get獲取,可(kě)能會出現該字符串不存在而導緻報錯的情況,可(kě)以試用opt獲取,代碼如(rú)下(xià):
product.optString("title")
然則這裡會出現一個(gè)問(wèn)題,那就是如(rú)不雅沒有title這個(gè)字符串對象,這句話也是不會報錯的,然則法度榜樣的履行結不雅卻不是我們預期那樣的。

相關(guān)案例查看更多