package com.doumee.lib_coremodel.http.utils; 
 | 
  
 | 
  
 | 
import com.google.gson.Gson; 
 | 
import com.google.gson.JsonArray; 
 | 
import com.google.gson.JsonElement; 
 | 
import com.google.gson.JsonParser; 
 | 
import com.google.gson.JsonSyntaxException; 
 | 
import com.google.gson.reflect.TypeToken; 
 | 
  
 | 
import java.lang.reflect.Type; 
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
import timber.log.Timber; 
 | 
  
 | 
public class GsonTools { 
 | 
  
 | 
    public GsonTools() { 
 | 
        // TODO Auto-generated constructor stub 
 | 
    } 
 | 
  
 | 
    public static <T> T changeGsonToBean(String gsonString, Class<T> cls) { 
 | 
        Gson gson = new Gson(); 
 | 
        T t=null; 
 | 
        //t = gson.fromJson(gsonString, cls); 
 | 
        try { 
 | 
            Timber.tag("HTTP==>").d("Response:  "+cls.getSimpleName()+"===   "+gsonString); 
 | 
            t = gson.fromJson(gsonString, cls); 
 | 
        } catch (JsonSyntaxException e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
        return t; 
 | 
    } 
 | 
  
 | 
    public static <T> T changeGsonToBean(String gsonString, Type typeOfT) { 
 | 
        Gson gson = new Gson(); 
 | 
        T t=null; 
 | 
        //t = gson.fromJson(gsonString, cls); 
 | 
        try { 
 | 
            Timber.tag("HTTP==>").d("Response:  ===   "+gsonString); 
 | 
            t = gson.fromJson(gsonString, typeOfT); 
 | 
        } catch (JsonSyntaxException e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
        return t; 
 | 
    } 
 | 
  
 | 
    public static <T> List<T> changeGsonToList(String gsonString, Class<T> cls) { 
 | 
        Gson gson = new Gson(); 
 | 
        List<T> list = gson.fromJson(gsonString, new TypeToken<List<T>>() { 
 | 
        }.getType()); 
 | 
        return list; 
 | 
    } 
 | 
  
 | 
    public static <T> String changeGsonToJson(T t) { 
 | 
        Gson gson = new Gson(); 
 | 
        return gson.toJson(t); 
 | 
    } 
 | 
  
 | 
    public static <T> List<T> fromJsonArray(String json, Class<T> clazz) throws Exception { 
 | 
        List<T> lst = new ArrayList<T>(); 
 | 
  
 | 
        JsonArray array = new JsonParser().parse(json).getAsJsonArray(); 
 | 
        for(final JsonElement elem : array){ 
 | 
            lst.add(new Gson().fromJson(elem, clazz)); 
 | 
        } 
 | 
        return lst; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
    public static <T> List<Map<String, T>> changeGsonToListMaps( 
 | 
            String gsonString) { 
 | 
        List<Map<String, T>> list = null; 
 | 
        Gson gson = new Gson(); 
 | 
        list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() { 
 | 
        }.getType()); 
 | 
        return list; 
 | 
    } 
 | 
  
 | 
    public static <T> Map<String, T> changeGsonToMaps(String gsonString) { 
 | 
        Map<String, T> map = null; 
 | 
        Gson gson = new Gson(); 
 | 
        map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() { 
 | 
        }.getType()); 
 | 
        return map; 
 | 
    } 
 | 
  
 | 
} 
 |