工具类之利用Gson对JSON串进行带泛型的List/纯数组转化

一、泛型实体

这里主要目的是返回一个通用的结果集

@Data
public class ResultRespDto<T> {
    /**
     * 返回结果值
     */
    private ResultRespDataDto<T> data;

    /**
     * 返回状态码
     */
    private String ret_code;

    /**
     * 返回消息
     */
    private String ret_msg;
}
@Data
public class ResultRespDataDto<T> {
    private List<T> data;
}

二、带转化的泛型对象(后期可以自定义) 

@Data
public class Student{
    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private String age;

    /**
     * 学校
     */
    private String school;
}

三、带泛型的List转化

//数据源{"data":{"data":[{"name":"mark","age":"12","school":"csu"},{"name":"mario","age":"14","school":"just"}]},"ret_code":"00000000","ret_msg":""}

String jsonStr = "{\"data\":{\"data\":[{\"name\":\"mark\",\"age\":\"12\",\"school\":\"csu\"},{\"name\":\"mario\",\"age\":\"14\",\"school\":\"just\"}]},\"ret_code\":\"00000000\",\"ret_msg\":\"\"}";
Gson gson = new Gson();
ResultRespDto resultRespDtos = gson.fromJson(jsonStr, new TypeToken<ResultRespDto<Student>>(){}.getType());

执行结果

// 结果:

data:
        // 0 Student [name=mark, age=12, school=csu]
        // 1 Student [name=mario, age=14, school=just]

ret_code:00000000

ret_msg:"返回成功"

 核心方法--指定带泛型的type

gson.fromJson(jsonStr, new TypeToken<ResultRespDto<Student>>(){}.getType());

四、纯数组映射

JSON串为

[ {

    "name":"mark","age":15,"school":"csu"

    }, {

    "name":"mark","age":10,"school":"just"

}] 

 Type listType = new TypeToken<LinkedList<Student>>(){}.getType();
 List<Student> listCloudConfigs = gson.fromJson(resultJson, listType);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值