fastjson 嵌套对象,泛型的再次处理

由于google无法方便的进行list 泛型转换,采用fastjson就简单多了。

如:

String s = "[{\"id\":1,\"name\":\"李坤\"},{\"id\":2,\"name\":\"曹贵生\"},{\"id\":3,\"name\":\"柳波\"}]";
List<Student> personList  = JSON.parseArray(s, Student.class); 


一句搞定,超快捷有没有 :)

这是简单的list返回对象处理,如果返回是分页信息,包括主体信息:List对象,分页附属信息:总页数、当前页等,就需要再处理下:

//返回String结果,包括主体信息List(List可以是用户表、新闻等其他bean,这就是泛型的好处),以及分页附属信息

String s= "{\"currentPageCount\":12,\"last\":false,\"list\":[{\"birthday\":\"1981-2-1\",\"deptnames\":\"信息部\",\"email\":\"333@qq.com\",\"mobile\":\"18011111111\",\"names\":\"sam xie\",\"username\":\"admins\"},{\"$ref\":\"$.list[0]\"}],\"pageNumber\":2,\"pageSize\":12}";     //{\"$ref\":\"$.list[0]\"}指向list[0],重复,直接使用引用。
//下面直接两行就搞定分页对象、list对象
 Page<User> page = FastJsonTools.getPage(s, User.class);
 List<User> users = page.getList();

//关键来了,如何工具类取page
public class FastJsonTools {
 public static <T> Page<T> getPage(String jsonString, Class<T> clz) {
        try {
           Page<T> page =  JSON.parseObject(jsonString,
                    new TypeReference<Page<T>>() {
                    });
            //泛型类型调用paseObject的时候,使用parseObject可以转换Class,
            // 但是后边传TypeReference或者Type就解析不出泛型类型了,需要再转换一次
            List<T> list = JSONArray.parseArray(page.getList().toString(), clz);
            page.setList(list);
            return page;
        } catch (Exception e) {
            // TODO: handle exception
        }
        return null;
    }
}


//哦了,如有更好的方法,希望不吝赐教。

//另网络交互可以使用volley,比Asynctask简洁很多。推荐看下相声:满腹经纶 20分钟完整版,压力之余,轻松一下 :)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值