首先先講一個比較簡單點的例子(最簡單的我就不講啦,網上不少),幫助新手理解Gson的使用方法:
好比咱們要解析一個下面這種的Json:
String json = {"a":"100","b":[{"b1":"b_value1","b2":"b_value2"},{"b1":"b_value1","b2":"b_value2"}],"c":{"c1":"c_value1","c2":"c_value2"}}
首先咱們須要定義一個序列化的Bean,這裏採用內部類的形式,看起來會比較清晰一些:
public class JsonBean {
public String a;
public List<B> b;
public C c;
public static class B {
public String b1;
public String b2;
}
public static class C {
public String c1;
public String c2;
}
}
不少時候你們都是不知道這個Bean是該怎麼定義,這裏面須要注意幾點:
一、內部嵌套的類必須是static的,要否則解析會出錯;
二、類裏面的屬性名必須跟Json字段裏面的Key是如出一轍的;
三、內部嵌套的用[]括起來的部分是一個List,因此定義爲 public List<B> b,而只用{}嵌套的就定義爲 public C c,
具體的你們對照Json字符串看看就明白了,不明白的咱們能夠互相交流,本人也是開發新手!
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<JsonBean>() {}.getType();
JsonBean jsonBean = gson.fromJson(json, type);
而後想拿數據就很簡單啦,直接在jsonBean裏面取就能夠了!
若是須要解析的Json嵌套了不少層,一樣能夠能夠定義一個嵌套不少層內部類的Bean,須要細心的對照Json字段來定義哦。java