1. 泛型,使用Gson的TypeToken
(1) Map<String, String> contextMaps =
JsonUtil.fromJson(str,new TypeToken<HashMap<String, String>>() {}.getType());
(2) Type type = new TypeToken<List<GoodsPropValue>>(){}.getType();
List<GoodsPropValue> goodsPropValues = JsonUtil.fromJson(properties, type);
注意:
import com.google.gson.reflect.TypeToken;
public static <T> T fromJson(String jsonStr,Type type){
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new MyDateDeserializer())
.create();
return (T)gson.fromJson(jsonStr, type);
}
2. 将含有时间类型的实体类以Json的形式存入数据库,存取的方法
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/*** 对象转换成json 字符串
*
* @param object
* @return
*/
public static String objectToJson(Object object)
{
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new MyDateSerializer())
.create();
return gson.toJson(object);
}
/**
* 将json字符串反序列化为对象,不区分注解
* @param jsonStr
* @param classOfT
* @return
*/
public static <T> T fromJson(String jsonStr,Type type){
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new MyDateDeserializer())
.create();
return (T)gson.fromJson(jsonStr, type);
}