Gson 转换工具类

package com.xxx.statistic.util;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

/**
 * @Description: gson数据类型
 */
public class GsonHelper {
    
    //gson实例
    public static Gson gson = new GsonBuilder().disableHtmlEscaping().create() ;

    //String 转 Object
     public static Type msmss = new TypeToken<Map<String,Map<String,String>>>() {}.getType();
     public static Map<String,Map<String,String>>  msmss(String str){
         return  gson.fromJson(str, msmss);
     }
     
     public static Type msmso = new TypeToken<Map<String,Map<String,Object>>>() {}.getType();
     public static Map<String,Map<String,Object>>  msmso(String str){
         return  gson.fromJson(str, msmso);
     }
    
     public static Type mss = new TypeToken<Map<String,String>>() {}.getType();
     public static Map<String,String>  mss(String str){
         return  gson.fromJson(str, mss);
     }
     
     public static Type mso = new TypeToken<Map<String,Object>>() {}.getType();
     public static Map<String,Object>  mso(String str){
         return  gson.fromJson(str, mso);
     }
     
     public static Type lmss = new TypeToken<List<Map<String,String>>>() {}.getType();
     public static List<Map<String,String>>  lmss(String str){
         return  gson.fromJson(str, lmss);
     }
     
     public static Type lmso = new TypeToken<List<Map<String,Object>>>() {}.getType();
     public static List<Map<String,Object>>  lmso(String str){
         return  gson.fromJson(str, lmso);
     }
     
     public static Type mslo = new TypeToken<Map<String,ArrayList<Object>>>() {}.getType();
     public static Map<String,List<Object>>  mslo(String str){
         return  gson.fromJson(str, mslo);
     }
     
     public static Type msls = new TypeToken<Map<String,ArrayList<String>>>() {}.getType();
     public static Map<String,List<String>>  msls(String str){
         return  gson.fromJson(str, msls);
     }
     
     public static Type ls = new TypeToken<List<String>>() {}.getType();
     public static List<String>  ls(String str){
         return  gson.fromJson(str, ls);
     }
     
     public static Type lo = new TypeToken<List<Object>>() {}.getType();
     public static List<Object>  lo(String str){
         return  gson.fromJson(str, lo);
     }
     
     public static Type ss = new TypeToken<Set<String>>() {}.getType();
     public static Set<String>  ss(String str){
         return  gson.fromJson(str, ss);
     }
     
     public static Type so = new TypeToken<Set<Object>>() {}.getType();
     public static Set<Object>  so(String str){
         return  gson.fromJson(str, so);
     }
     
     //传入类型转换
     @SuppressWarnings("unchecked")
     public static <T> T  fromJson(String str,Type typeOfT){
            T target = (T) gson.fromJson(str, typeOfT);
            return target;
     }
     
     //Object 转 String
     public static String  toJson(Object obj){
         return  gson.toJson(obj);
     } 

}
<dependency>
		<groupId>com.google.code.gson</groupId>
		<artifactId>gson</artifactId>
		<version>2.0</version>
	</dependency>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gson和TypeAdapter封装成一个工具类,可以方便地在项目中使用。 以下是一个示例代码: ``` import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; public class GsonUtils { private static Gson gson; static { gson = new GsonBuilder() .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter()) .create(); } public static String toJson(Object obj) { return gson.toJson(obj); } public static <T> T fromJson(String json, Class<T> clazz) { return gson.fromJson(json, clazz); } private static class LocalDateTimeTypeAdapter extends TypeAdapter<LocalDateTime> { private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @Override public void write(JsonWriter out, LocalDateTime value) throws IOException { if (value == null) { out.nullValue(); } else { out.value(formatter.format(value)); } } @Override public LocalDateTime read(JsonReader in) throws IOException { if (in.peek() == null) { return null; } else { String dateTimeStr = in.nextString(); return LocalDateTime.parse(dateTimeStr, formatter); } } } } ``` 在使用时,只需要调用GsonUtils的toJson和fromJson方法即可。 例如: ``` // 对象转为Json字符串 Person person = new Person("张三", 18, LocalDateTime.now()); String jsonStr = GsonUtils.toJson(person); // Json字符串转为对象 Person person2 = GsonUtils.fromJson(jsonStr, Person.class); ``` 这样就可以方便地进行对象和Json字符串的互相转换,并且支持LocalDateTime的序列化和反序列化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值