Android 使用Gson解析包对json格式数据进行反序列化
使用gson解析包对json格式数据进行解析时,分为两种情况
我使用的是gson-2.8.6.jar
github地址:gson地址
一、数据最外层是单个类的情况,通常为{},比如{"name":"Anddy","SV":"boy"}
这种情况下直接使用gson中的from进行处理即可,比如定义此类为classes1,成员为:
public String name;
public String SV;
对类进行get、set方法处理,之后直接使用Gson进行处理
String data = "{"name":"Anddy","SV":"boy"}";
Gson gson = new Gson();
classes1 cla = gson.fromJson(data,classes1.class);
之后就得到了类,使用的时候直接cla.getName()就得到了相应的数据
二、数据最外层是集合,通常为[{},{}],比如
[{"name":"Anddy1","SV":"boy"}, {"name":"Anddy2","SV":"boy"},{"name":"Anddy3","SV":"boy"}]
这种情况下需要用到java.lang.reflect.Type,使用gson引入Type的方式进行处理,此处需要按照类进行 分层,当前例子分为两层,即两个类: Cls1,Cls2
Cls1:
public List str;
Cls2:
public String name;
public String SV;
对类分别进行get、set方法处理
之后只需要对第一个类做type处理即可
String data = "[{"name":"Anddy1","SV":"boy"},{"name":"Anddy2","SV":"boy"}, {"name":"Anddy3","SV":"boy"}]";
Gson gson = new Gson();
Type type = (Type) new TypeToken>() {}.getType();
List cls = gson.fromJson(data, type);
到这里就得到了数据,使用的时候直接cls.get("此处为下标,Int类型").getName();即可