将json字符串中数组节点转换为泛型list集合(gson)
2023-09-14 09:04:40 时间
开发中需要将json中节点单独取出某个节点,解析获取数据,此处对json字符串节点中数组节点,转换为泛型list集合,使用gson。
google的gson的pom文件和jar:gson
代码如下:
package my.demo.java.z.generic;
import java.util.ArrayList;
import java.util.List;
import
main执行结果:
java中好用的list转json的工具hutool 最近做服务器接口开发的时候遇到的小问题,数据库查询之后的数据怎样快捷的转化为json数据,第一时间想到了查库,查了挺久的,好多都是用代码实现,比较懒,这方面内容代码实现的偏多,虽然确实比较简单,但能快点就快点
开发中需要将json中节点单独取出某个节点,解析获取数据,此处对json字符串节点中数组节点,转换为泛型list集合,使用gson。
google的gson的pom文件和jar:gson
代码如下:
package my.demo.java.z.generic; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; * Gson获取json中的数组节点. br/ * 将数组节点转换为list集合 泛型 . br/ * 泛型类,是在实例化类的时候指明泛型的具体类型. br/ * 泛型方法,是在调用方法的时候指明泛型的具体类型. br/ * @author Tony_tian * @time 2016-03-15 09:44:32 * */ public class GenericMethodsJson2List { public static final String START_ARRAY = "["; public static final String END_ARRAY = "]"; * Gson获取json中的数组节点.转换为list集合 泛型 . br/ * @param T 声明一个泛型T * @param List T 指明该方法的返回值为泛型T代表类型的list集合 * @param jsonStr json中的数组节点 * @param tC 指明泛型T的具体类型,用来创建泛型T代表的类的对象 * @return 1:正常返回泛型代表具体类型的list集合,2:转换错误则返回null * */ @SuppressWarnings("unchecked") public static final T List T json2listT(String jsonStr, Class T tC) { //json字符串不能为空 if(StringUtils.isBlank(jsonStr)) return null; //json字符串必须为数组节点类型 if(!(jsonStr.startsWith(START_ARRAY) jsonStr.endsWith(END_ARRAY))) return null; List T listT = null; try { //创建泛型对象 T t = tC.newInstance(); //利用类加载加载泛型的具体类型 Class T classT = (Class T ) Class.forName(t.getClass().getName()); List Object listObj = new ArrayList Object //将数组节点中json字符串转换为object对象到Object的list集合 listObj = new GsonBuilder().create().fromJson(jsonStr, new TypeToken List Object (){}.getType()); //转换未成功 if(listObj == null || listObj.isEmpty()) return null; listT = new ArrayList T //将Object的list中的的每一个元素中的json字符串转换为泛型代表的类型加入泛型代表的list集合返回 for (Object obj : listObj) { T perT = new GsonBuilder().create().fromJson(obj.toString(), classT); listT.add(perT); } catch (Exception e) { e.printStackTrace(); return listT;
public static void main(String[] args) { String jsonStr = "[{\"username\":\"点点\",\"memberNo\":1},{\"username\":\"didi\",\"memberNo\":2},{\"username\":\"卡卡\",\"memberNo\":3}]"; List Member listp = json2listT(jsonStr, Member.class); for (Member member : listp) { System.out.println(member.toString()); class Member{ private Integer memberNo; private String username; public Integer getMemberNo() { return memberNo; public String getUsername() { return username; public void setMemberNo(Integer memberNo) { this.memberNo = memberNo; public void setUsername(String username) { this.username = username; @Override public String toString() { StringBuilder su = new StringBuilder(); su.append("\"memberNo\"").append(":").append(this.getMemberNo()); su.append(",").append("\"username\"").append(":").append(this.getUsername()); return su.toString(); }
main执行结果:
"memberNo":1,"username":点点 "memberNo":2,"username":didi "memberNo":3,"username":卡卡
java中好用的list转json的工具hutool 最近做服务器接口开发的时候遇到的小问题,数据库查询之后的数据怎样快捷的转化为json数据,第一时间想到了查库,查了挺久的,好多都是用代码实现,比较懒,这方面内容代码实现的偏多,虽然确实比较简单,但能快点就快点
相关文章
- 浅析如何把ER模型转换为关系模式
- java对象转换工具类_java json字符串转对象
- String/InputStream/File之间的相互转换
- WPF 已知问题 dotnet 6 设置 InvariantGlobalization 之后将丢失默认绑定转换导致 XAML 抛出异常
- MySQL精准转换:值得信赖的数据转换方案(mysql转数值)
- MySQL 如何转换时间格式(mysql转时间格式)
- MySQL转换为日期格式:一招制胜(mysql转为日期格式)
- MSSQL数据格式转换简易攻略(mssql转换格式)
- MySQL转换Oracle实现数据库迁移(mysql转换oracle)
- URL编码转换,escape()encodeURI()encodeURIComponent()
- C#中string与byte[]的转换帮助类-.NET教程,C#语言
- javascript中简单的进制转换代码实例