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...