2020-11-10

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();即可

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值