首先先讲一个比较简单点的例子(最简单的我就不讲啦,网上很多),帮助新手理解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是该怎么定义,这里面需要注意几点:
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类里面的属性名必须跟Json字段里面的Key是一模一样的;
3、内部嵌套的用[]括起来的部分是一个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字段来定义哦。
相关文章
- 10-07android-如何使用Gson解析JSON对象内的多个JSON数组?
- 10-07android-使用GSON库解析JSON的问题
- 10-07Android JSON、GSON、FastJson的封装与解析
- 10-07我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题
- 10-07Android Gson解析多层嵌套复杂数据
- 10-07Android应用之——谷歌官方Json解析工具Gson的使用
- 10-07【Android进阶】Gson解析json字符串的简单应用
- 10-07Android开发之Gson解析Json嵌套数据
- 10-07js解析多层嵌套的json,取出所有父元素属性和遍历所有子元素
- 10-07Android中使用Gson解析JSON数据的两种方法