Android Json解析課程

2021-06-26 02:21:19 字數 2914 閱讀 7688

android json解析教程

先謝謝教程的提供者,本人僅僅是為學習所用,無他意!

一、json介紹:

二、android的json解析部分都在包org.json下,主要有以下幾個類:

jsonobject:可以看作是乙個json物件 

jsonstringer:json文字構建類 

jsonarray:可以看作是json的陣列 

jsontokener:json解析類 

jsonexception:json中用到的異常 

(1).解析object之一:

解析方法:

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(4).解析array之二:

解析方法:

//巢狀陣列遍歷

jsonobject demojson = new jsonobject(jsonstring);

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

for(int i=0; i(5).解析object和array:

,]}

解析方法:

jsonobject demojson = new jsonobject(jsonstring);

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

for(int i=0; i(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以冒號分隔。

(5).string由雙引號包圍的任意數量unicode字元的集合,使用反斜線轉義。

(6).value可以是雙引號括起來的字串(string)、數值(number)、true、false、 null、物件(object)或者陣列(array)。這些結構可以巢狀。

(7).空白可以加入到任何符號之間,包括空格,tab,回車,換行等。

(8).舉例:

a.object例項:

,

"ids": [116, 943, 234, 38793]

}}

b.array例項:

[

,]

android json資料的解析

json是什麼 json是jvascript object natation,是一種輕量級的資料交換格式 json的語法 1 資料在名稱 值對中 name kobe 2 資料由逗號分割 name kobe team lakers 3 花括號 表示物件 star 4 方括號表示陣列 正確的json 使...

Android json通訊(解析)方法

下面是在做天氣預報程式時用到的json通訊,解析方法,備份一下,下次找就方便了 private static string convertstream2json inputstream inputstream 將記憶體流轉換為字串 jsonstr new string out.tobytearray...

Android Json解析之直接物件解析 三

可以直接從json中將隊形解析出來,這個json必須是乙個json物件,如下 它只是乙個物件。我新建乙個類,生成get和set方法,如下 package com.zhycheng public class human public void setname string name public in...