package com.vincent.rsf.common.utils; 
 | 
  
 | 
import com.google.gson.Gson; 
 | 
import com.google.gson.JsonSyntaxException; 
 | 
import com.google.gson.reflect.TypeToken; 
 | 
  
 | 
import java.lang.reflect.Type; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
public class GsonUtils { 
 | 
  
 | 
    // include cache 
 | 
    private static final Gson gson = new Gson(); 
 | 
  
 | 
    public static String toJson(Object object) { 
 | 
        return gson.toJson(object); 
 | 
    } 
 | 
  
 | 
    public static <T> T fromJson(String json, Class<T> clazz) throws JsonSyntaxException { 
 | 
        return gson.fromJson(json, clazz); 
 | 
    } 
 | 
  
 | 
    public static <T> T fromJson(String json, Type typeOfT) throws JsonSyntaxException { 
 | 
        return gson.fromJson(json, typeOfT); 
 | 
    } 
 | 
  
 | 
    public static <T> List<T> fromJsonToList(String json, Class<T> clazz) throws JsonSyntaxException { 
 | 
        Type type = TypeToken.getParameterized(List.class, clazz).getType(); 
 | 
        return gson.fromJson(json, type); 
 | 
    } 
 | 
  
 | 
    public static <K, V> Map<K, V> fromJsonToMap(String json, Class<K> keyType, Class<V> valueType) throws JsonSyntaxException { 
 | 
        Type type = TypeToken.getParameterized(Map.class, keyType, valueType).getType(); 
 | 
        return gson.fromJson(json, type); 
 | 
    } 
 | 
  
 | 
} 
 |