android json解析詳解(json手動解析)
阿新 • • 發佈:2018-12-31
一 .json簡介
1)概念:json全稱是javaScript object Notation,是一種病輕量級的資料交換格式。
2)特點:
1.本質就是具有特定格式的字串
2,.json完全獨立於程式語言
3.json比xml資料傳輸的有效性要高出很多
二。json資料格式
1)整體結構:
String json1="{“id”:“12”,“name”:“TOM”}";
String json2=''[{“id”:“12”,“name”:“TOM”},{“id”:“12”,“name”:“TOM”},{“id”:“12”,“name”:“TOM”}]"
2)json物件
1)json物件的結構:
{key:value1,key:value2,}
2)key的資料結構型別:字串
3)value的資料型別:數值,字串,null,json陣列[] ,json物件{}
4:例子:{“id”:“12”,“name”:“TOM”}
3)json陣列
1)json陣列的結構 [value1,value2,value3]
2)value的資料型別:數值, 字串 null json陣列[] json物件{}
3)例子:[1, “ab”,[], {“n”:123, “b”:”abc”}]
三。json解析方向
1)將java物件(包含集合)轉換為json字串格式(在伺服器端應用)
2)將json格式字串轉換java物件(在客戶端應用)
3)json和java之間的轉換關係
json對應java物件轉換
json陣列和java物件構成的list對應
json解析技術
android原生解析
1)特點: 程式設計相對麻煩
2)資料之間轉換
(1)將json格式的字串{}轉換為Java物件
API:
JSONObject(String json) : 將json字串解析為json物件
Xxx getXxx(String name) : 根據name, 在json物件中得到對應的Value
Xxx optXxx(String name) : 根據name, 在json物件中得到對應的Value
注意:
optXxx方法會在對應的key中的值不存在的時候返回一個空字串或者返回你指定的預設值,但是getString方法會出現空指標異常的錯誤。
測試資料:
(2)將json格式的字串[]轉換為Java物件的List
API:
JSONArray(String json) : 將json字串解析為json陣列
int length() : 得到json陣列中元素的個數
Xxx getXxx(int index) : 根據下標得到json陣列中對應的元素資料
Xxx optXxx(int index) : 根據下標得到json陣列中對應的元素資料
注意:
optXxx方法會在對應的key中的值不存在的時候返回一個空字串或者返回你指定的預設值,但是getString方法會出現空指標異常的錯誤。
測試資料:
(3)複雜json資料解析
a) 測試資料:
http://api.ds.lingshi.cccwei.com/?cid=625561&uid=0&tms=20160427085818&sig=36b291895c63dfc4&wssig=26637611c0c64fb7&os_type=3&version=24&channel_name=feibo&srv=2402&classify_id=32
b) GsonFormat工具生成物件類
見工具使用
c) 手動解析json資料
(4)特殊json資料解析
a) 測試資料
http://api.bilibili.com/online_list?_device=android&platform=android&typeid=13&sign=a520d8d8f7a7240013006e466c8044f7
b) 手動寫解析json資料的物件類
c) 手動解析json資料
2.Gson框架技術
1)特點:編碼簡潔,谷歌官方推薦
3)資料之間轉換
(1)將json格式的字串{}轉換為Java物件
API:
fromJson(String json, Class<T> classOfT);
注意:
要求json物件中的key的名稱與java物件對應的類中的屬性名要相同
步驟
1)將Gson的jar包匯入到專案中
2)建立Gson物件 :
Gson gson = new Gson();
3)通過建立的Gson物件呼叫fromJson()方法,返回該JSON資料對應的Java物件:
ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);
測試資料:
(2)將json格式的字串[]轉換為Java物件的List
API:
fromJson(String json, Type typeOfT);
type
測試資料:
步驟
1)將Gson的jar包匯入到專案中
2)建立Gson物件 :
Gson gson = new Gson();
3)通過建立的Gson物件呼叫fromJson()方法,返回該JSON資料對應的Java集合:
List<ShopInfo> shops = gson.fromJson(json, new TypeToken<List<ShopInfo>>() {}.getType());
(3)將Java物件轉換為json字串{}
API:
String toJson(Object src);
步驟
1)將Gson的jar包匯入到專案中
2)建立Gson物件 :
Gson gson = new Gson();
3)通過建立的Gson物件呼叫toJson()方法,返回json資料:
ShopInfo shop = new ShopInfo(1, "鮑魚", 250.0, "");
String json = gson.toJson(shop);
(4)將Java物件的List轉換為json字串[]
API:
String toJson(Object src);
步驟
1)將Gson的jar包匯入到專案中
2)建立Gson物件 :
Gson gson = new Gson();
3)通過建立的Gson物件呼叫toJson()方法,返回json資料:
List<ShopInfo> shops = new ArrayList<>();
String json = gson.toJson(shops);
3。FastJson框架技術
1)特點:FasrJson是java語言程式設計寫的高效能完善json庫,他採用一種假定有序快速匹配演算法,把jsonParse的效能提升到極致,目前是java語言中最快的json庫
3)資料之間的轉換
(1)將json格式的字串{}轉換為Java物件
API: parseObject(String json, Class<T> classOfT);
步驟:
1)匯入fastjson的jar包
2)JSON呼叫parseObject()方法,獲取轉換後的Java物件
例如:ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
測試資料:
(2)將json格式的字串[]轉換為Java物件的List
API: List<T> parseArray(String json,Class<T> classOfT);
步驟:
1)匯入fastjson的jar包
2)JSON呼叫parseArray()方法,獲取轉換後的Java集合
例如:List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);
測試資料:
(3)將Java物件轉換為json字串{}
API: String toJSONString(Object object);
步驟:
1)匯入fastjson的jar包
2)JSON呼叫toJSONString()方法,獲取轉換後的json資料
例如:
ShopInfo shopInfo = new ShopInfo(1, "鮑魚", 250.0, "baoyu");
String json = JSON.toJSONString(shopInfo);
(4)將Java物件的List轉換為json字串[]
API: String toJSONString(Object object);
步驟:
1)匯入fastjson的jar包
2)JSON呼叫toJSONString()方法,獲取轉換後的json資料
例如:
List<ShopInfo> shops = new ArrayList<>();
ShopInfo baoyu = new ShopInfo(1, "鮑魚", 250.0, "baoyu");
ShopInfo longxia = new ShopInfo(2, "龍蝦", 251.0, "longxia");
shops.add(baoyu);
shops.add(longxia);
String json = JSON.toJSONString(shops);
5.GsonFormat工具使用教程
1_ GsonFormat工具使用
1.1_GsonFormat
1)開啟Android studio頁面,點選設定按鈕。
2)點選Plugins按鈕
3)在右側輸入框中輸入gsonformat,然後點選中間部位的Browse(必須在聯網情況下點選)
4)選擇GsonFormat,點選右側的安裝外掛
5)重啟一下Android studio 6)在Android studio中建立一個類 7)在該類中同時按下alt+shift+s,並點選GsonFormat 8)將要解析的JSON字串貼上到GsonFormat中
9)點選OK 10 )這樣就將輸入的JSON資料轉換為了bean物件
5)重啟一下Android studio 6)在Android studio中建立一個類 7)在該類中同時按下alt+shift+s,並點選GsonFormat 8)將要解析的JSON字串貼上到GsonFormat中
9)點選OK 10