package org.fluxtream.core.utils.gson;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* @author Candide Kemmler (candide@fluxtream.com)
*/
public class GsonUtils {
static Gson gson;
static {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new DateSerializer());
gsonBuilder.registerTypeAdapter(Date.class, new DateDeserializer());
gson = gsonBuilder.create();
}
public static <T> List<T> cast(String result, Class<T> clazz, Type listType) {
JSONObject resultsJson = JSONObject.fromObject(result);
final JSONArray results = resultsJson.getJSONArray("results");
List<T> items = gson.fromJson(results.toString(), listType);
return items;
}
}