Android 利用gson解析json
Contents
Android 利用gson解析json
反射和序列化
在開始前先貼篇文章暖暖身,讓大家了解Reflection(反射)和Serialization(序列化)的不同
常常在串接API時,伺服器端傳過來的是json格式。
我個人是很不相信自己的眼睛,所以直接用string get field的動作我是盡量不寫的。
取而代之的是用Gson提供的Deserializatione(反序列化)工具來達成這個目標,反序列化底層的實作是依賴Reflection(反射)機制而達成,不過不是這篇的重點。
如果有json data如下
{
"fruit": "apple",
"hello": "world"
}
我會用一個class,有著跟json檔一模一樣的field。
class Data{
public String fruit;
public String hello;
}
然後利用Gson的fromJson函式
Data jsonData(String jsonStr){
Gson gson = new Gson();
Data result = gson.fromJson(jsonStr, Data.class);
return result;
}
將檔案給解析出來,如果實際的json物件屬性跟class資料屬性對不上的話,就會拋擲異常。
fromJson這個函式就是Gson的反序列化工具。