json转对象

 public static <T> T json2Obj(String json, Class<T> cls) {
Gson gson = new Gson();
return gson.fromJson(json, cls);
}

json转list object

很多例子根本都不是泛型的,还标榜泛型,真是误导他人

可以参考下面的方式来实现

public static <T> List<T> json2ListObj(String json, Class<T> cls) {
List reList = new ArrayList();
JsonElement jsonElement = new JsonParser().parse(json);
JsonArray array = jsonElement.getAsJsonArray();
Iterator iterator = array.iterator();
Gson gson = new Gson(); while (iterator.hasNext()) {
JsonElement json2 = (JsonElement) iterator.next();
T contact = gson.fromJson(json2, cls);
//can set some values in contact, if required
reList.add(contact);
} return reList;
}

不带泛型的json转list

 gson.fromJson(json, new TypeToken<List<YourClass>>() {}.getType());

gson 带泛型的转换的更多相关文章

  1. Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 (转)

    Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. jar和源码下载地址: h ...

  2. 使用GSON和泛型解析约定格式的JSON串(转)

    时间紧张,先记一笔,后续优化与完善. 解决的问题: 使用GSON和泛型解析约定格式的JSON串. 背景介绍: 1.使用GSON来进行JSON串与java代码的互相转换. 2.JSON的格式如下三种: ...

  3. fastJson泛型如何转换

    引子 现在负责的业务 和 json 打交道比较多, 最近使用fastJson框架 json串转成泛型对象遇到了一个异常 : java.lang.ClassCastException 还原下场景 : 模 ...

  4. 将java类的泛型集合转换成json对象

    一般用extjs开发传输都是用json比较多,这个将来大家也许会用到... ConvertJsonUtils.java package com.sunweb.util.jsonfactory; imp ...

  5. Gson把json串转换成java实体对象

    Gson把json串转换成java实体对象的方法如下: 1.首先导入Gson的jar包,网上可以下载. java实体对象如下: public class Model { private double ...

  6. 使用Calibre自带工具批量转换电子书格式

    原来使用Calibre转换电子书格式都是先导入,再转换,再把转换后的文件复制出来,最后再改名. 虽然可以批量导入和转换,但复制和改名要一个处理.后来发现Calibre自带命令行转换工具,就写了一个批处 ...

  7. List转DataTable(反射) ; 将泛型集合类转换成DataTable ; 将集合类转换成DataTable

    public class ConvertX { #region 将集合类转换成DataTable /// <summary> /// 将集合类转换成DataTable /// </s ...

  8. Fastjson转换json到带泛型的对象(如Map)报错解决

    List<CategoryDTO> categoryList = null; String categoryStr = redisService.get(RedisKeyConstant. ...

  9. java泛型基础、子类泛型不能转换成父类泛型

    参考http://how2j.cn/k/generic/generic-generic/373.html 1.使用泛型的好处:泛型的用法是在容器后面添加<Type>Type可以是类,抽象类 ...

随机推荐

  1. git 撤销修改和版本回退

    1. 工作区 文件只是在工作区进行了修改,还没有提交到暂存区(未进行 git  add 操作) 此时可以使用  git  checkout  --  filename  撤销工作区文件的修改 效果相当 ...

  2. TCP时间戳选项Timestamp

    时间戳选项发送方在每个报文段中放置一个时间戳值.接收方在确认中返回这个数值,从而允许发送方为每一个收到的ACK计算RTT(我们必须说“每一个收到的ACK”而不是“每一个收到的报文段”,是因为TCP通常 ...

  3. 简单的多屏播放器示例(vlc+qt)

      介绍 简单的多屏播放器 最多同时播放16个视频 支持本地文件和rtsp.rtmp等流媒体播放 VS2015工程,依赖Qt+VLC 练手作品 截图 下载 程序:download.csdn.net/d ...

  4. excel中如何设置只打印第一页

    在打印表格时,怎样设置只打印第一页呢,操作很简单,下面,小编说下操作方法.   方法/步骤     打开要打印的工作表, 再点击“文件”   弹出的页面中,在左侧这里,点击“打印”   在右边弹出与打 ...

  5. react 的定义组件(了解)

    react 中定义组件的方法 1. 定义组件 React.createClass() (被淘汰了) 定义组件中的函数 methods 的中的 this 统统指向 组件 2. 函数定义组件 定义的组件时 ...

  6. 快速查找 js 插件

    我们是否为一个插件找半天找不到而烦恼 BootCDN 现在不用了,我们可以在 https://www.bootcdn.cn/ 中查找我们想要的任何插件,然后点进去,一直到点进去文件,我们便可以得到 这 ...

  7. HTML中meta=“viewport”的介绍

    viewport就是浏览器上用来显示网页的那部分区域 layout viewport:整个网页所占据的区域(包括可视也包括不可视的区域)  默认的 visual viewport:网页在浏览器上的可视 ...

  8. 利用CountDownTimer倒计时的简单使用实现

    package com.loaderman.countdowntimerdemo; import android.os.Bundle; import android.os.CountDownTimer ...

  9. mysql 安装 和 mysql 远程连接

    一.mysql安装 1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community ...

  10. Rxjava2实战--第四章 Rxjava的线程操作

    Rxjava2实战--第四章 Rxjava的线程操作 1 调度器(Scheduler)种类 1.1 RxJava线程介绍 默认情况下, 1.2 Scheduler Sheduler 作用 single ...