Android進步之十一 Json解析

2021-07-03 02:32:50 字數 2107 閱讀 7819

json資料格式,在android中廣泛應用於客戶端和網路通訊。

參考文件:

解析方法:

jsonobject demojson = new jsonobject(jsonstring);

string url = demojson.getstring("url");

(2).解析object之二:

解析方法:

jsonobject demojson = new jsonobject(jsonstring);

string name = demojson.getstring("name");

string version = demojson.getstring("version");

system.out.println("name:"+name+",version:"+version);

(3).解析array之一:

解析方法:

jsonobject demojson = new jsonobject(jsonstring);

jsonarray numberlist = demojson.getjsonarray("number");

for(int i=0; i

//因為陣列中的型別為int,所以為getint,其他getstring,getlong同用

system.out.println(numberlist.getint(i));}

(4).解析array之二:

解析方法:

//巢狀陣列遍歷

jsonobject demojson = new jsonobject(jsonstring);

jsonarray numberlist = demojson.getjsonarray("number");

for(int i=0; i

//獲取陣列中的陣列

system.out.println(numberlist.getjsonarray(i).getint(0));}

(5).解析object和array:

,]}

解析方法:

jsonobject demojson = new jsonobject(jsonstring);

jsonarray numberlist = demojson.getjsonarray("mobile");

for(int i=0; i

system.out.println(numberlist.getjsonobject(i).getstring("name"));}

所以,我們發現get後面接著的是你想要的得到的結果的型別:gettype,這個對理解很有幫助。

(6).使用opttype:

上面的例子,使用gettype在碰到查詢不到節點的時候,會丟擲異常。

如果使用opttype,找不到節點,則返回null或者預設值。

//無url節點,丟擲異常

string url = demojson.getstring("url");

//無url節點,返回空,如果為基本型別,則返回預設值

string url = demojson.optstring("url");

(7).utf-8的bom頭導致解析json異常的問題

到json檔案儲存為utf-8的時候,在windows平台下,會產生bom頭"ef bb ef"位元組在文字的最前面(需要用十六進製制工具開啟才能看的到)。

有兩種解決方法:

a.使用ultraedit開啟json檔案, 另存為的時候,選擇格式utf-8,無bom頭,如果還不行,在用記事本開啟,另存為utf-8下,多試幾次就可以了。

b.使用**處理,擷取json主體內容:

string jsonstring = getjsonstring();

jsonstring = jsonstring.substring(jsonstring.indexof("")+1);

2.json必知

(1).json是一種輕量級的資料交換格式

(2).json基於兩種資料結構:object和array。其中object是「名稱/值」對的集合。

(3).物件:大括號,每一組string-value結合以","分隔,string和value以冒號分隔。

Android高階之第十一講Hybird開發

引用必須註明出處!目前android上常用底層技術方案有兩種,一種通過頁面載入完執行js方法傳值,或者呼叫 重新整理 執行,方法少功能也比較雞肋,另一種使用webjsinte ce 4.2版本以上,主要為h5端提供資料 的方式 shouldoverrideurlloading 接收h5端的事件驅動 ...

Android學習筆記(十一)

最後在ondestroy 方法中分別呼叫stop 和release 方法,將與mediaplayer相關的資源釋放掉。方法名功能描述 setdatasource prepare start pause reset 將mediaplayer物件重置到剛剛建立的狀態 seekto stop releas...

十一 Android設計模式

android專案開發中發現問題 解決問題這個過程中會出現很多問題,比如重複出現 某個問題的遺留,這些問題的本質就是android設計模式。下面羅列7種常用的android設計模式。單例模式 目的是為了讓系統中只有乙個呼叫物件,缺點是單例使其他程式過分依賴它,而且不同單例執行在不同程序中,使得維護困...