解析伺服器傳來的 JSON 檔案

2021-07-30 14:13:37 字數 1784 閱讀 4865

在 android 中內建了 json 的解析 api,在 org.json 包中包含了如下幾個類:jsonarray、jsonobject、jsonstringer、jsontokener 和乙個異常類 jsonexception。

1、json 解析步驟

1)、讀取網路檔案資料並轉為乙個 json 字串

inputstream in = conn.getinputstream();

string jsonstr = datautil.stream2string(in);//將流轉換成字串的工具類

2)、將字串傳入相應的 json 建構函式中

①、通過建構函式將 json 字串轉換成 json 物件

jsonobject jsonobject = new jsonobject(jsonstr);
②、通過建構函式將 json 字串轉換成 json 陣列:

jsonarray array = new jsonarray(jsonstr);

3)、解析出 json 中的資料資訊:

①、從 json 物件中獲取你所需要的鍵所對應的值

jsonobject json=jsonobject.getjsonobject("weatherinfo");

string city = json.getstring("city");

string temp = json.getstring("temp")

②、遍歷 json 陣列,獲取陣列中每乙個 json 物件,同時可以獲取 json 物件中鍵對應的值

for (int i = 0; i < array.length(); i++)

2、生成 json 物件和陣列

1)生成 json:

方法 1、建立乙個 map,通過構造方法將 map 轉換成 json 物件

mapmap = new hashmap();

map.put("name", "zhangsan");

map.put("age", 24);

jsonobject json = new jsonobject(map);

方法 2、建立乙個 json 物件,通過 put 方法新增資料

jsonobject json=new jsonobject();

json.put("name", "zhangsan");

json.put("age", 24);

2)生成 json 陣列:

建立乙個 list,通過構造方法將 list 轉換成 json 物件

mapmap1 = new hashmap();

map1.put("name", "zhangsan");

map1.put("age", 24);

mapmap2 = new hashmap();

map2.put("name", "lisi");

map2.put("age", 25);

list> list=new arraylist>();

list.add(map1);

list.add(map2);

jsonarray array=new jsonarray(list);

system.out.println(array.tostring());

解析伺服器傳來的 XML 格式資料

android 為我們提供了原生的 xml 解析和生成支援。1 xml 解析 獲取解析器 xml.newpullparser 設定輸入流 setinput 獲取當前事件型別 geteventtype 解析下乙個事件,獲取型別 next 獲取標籤名 getname 獲取屬性值 getattribute...

android 解析伺服器json物件,陣列

一直都是用android自帶的org.json.jsonobject來解析伺服器發過來的json string,如果json是個list,下面是我以前的做法。把jsonarray物件轉換成listprotected listloadgoodslist jsonarray arr throws jso...

JSON伺服器示例

此json伺服器示例是2017年中重寫的文章系列的一部分,其中包含最新資訊和最新示例。json server是前端開發人員常用的工具,可以在不到一分鐘的時間內快速設定完全偽造的rest api。您需要先通過npm安裝它 npm install global json server接下來,將一些資料儲...