一:关于自己遇到的坑:
跨域请求获取到 String Json(GSON处理) 数据后处理转换为实体类进行存储:
跨域 return Gson.toJson(map);
通过Http等方法获取请求结果为 StringBuffer (此过程不加赘述,自行baidu),
处理 结果 buffer:
注意:
String retule = gson.toJson(disk_re.get(disk_i));
坑: String retule = disk_re.get(disk_i).toString(); 此方法转换String类型之后字符串内部结构发生变化,使用 Gson.fromJson(String json,T<Class>)时出现异常
二: 总结Gson转换用法
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.reflect.TypeToken;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.List;
import java.util.Map;
public class GsonUtil {
private static Gson gson = null;
private static Gson gson = null;
static {
gson = new Gson();
}
gson = new Gson();
}
private GsonUtil() {
}
}
/**
* 转成json
*/
public static String GsonString(Object object) {
String gsonString = null;
if (gson != null) {
gsonString = gson.toJson(object);
}
return gsonString;
}
* 转成json
*/
public static String GsonString(Object object) {
String gsonString = null;
if (gson != null) {
gsonString = gson.toJson(object);
}
return gsonString;
}
/**
* 转成bean
*/
public static <T> T GsonToBean(String gsonString, Class<T> cls) {
T t = null;
if (gson != null) {
t = gson.fromJson(gsonString, cls);
}
return t;
}
* 转成bean
*/
public static <T> T GsonToBean(String gsonString, Class<T> cls) {
T t = null;
if (gson != null) {
t = gson.fromJson(gsonString, cls);
}
return t;
}
/**
* 转成list
*/
public static <T> List<T> GsonToList(String gsonString, Class<T> cls) {
List<T> list = null;
if (gson != null) {
list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
}.getType());
}
return list;
}
* 转成list
*/
public static <T> List<T> GsonToList(String gsonString, Class<T> cls) {
List<T> list = null;
if (gson != null) {
list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
}.getType());
}
return list;
}
/**
* 转成list中有map的
*/
public static <T> List<Map<String, T>> GsonToListMaps(String gsonString) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(gsonString,
new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
}
* 转成list中有map的
*/
public static <T> List<Map<String, T>> GsonToListMaps(String gsonString) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(gsonString,
new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
}
/**
* 转成map的
*/
public static <T> Map<String, T> GsonToMaps(String gsonString) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
* 转成map的
*/
public static <T> Map<String, T> GsonToMaps(String gsonString) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
/*
Object 转map
*/
static <T> Object ObjectToMaps(Object object) {
if (object == null) {
return null;
}
if (object instanceof Integer || object instanceof String || object instanceof Double ||
object instanceof Float || object instanceof Long || object instanceof Boolean ||
object instanceof Date || object instanceof List) {
return object;
}
/*if (object instanceof HibernateProxy) {
System.out.println("object instanceof HibernateProxy");
}
Gson gson = new GsonBuilder()
.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY)
.create();*/
Map<String, T> map = null;
map = gson.fromJson(gson.toJson(object), new TypeToken<Map<String, T>>() {
}.getType());
return map;
}
}
Object 转map
*/
static <T> Object ObjectToMaps(Object object) {
if (object == null) {
return null;
}
if (object instanceof Integer || object instanceof String || object instanceof Double ||
object instanceof Float || object instanceof Long || object instanceof Boolean ||
object instanceof Date || object instanceof List) {
return object;
}
/*if (object instanceof HibernateProxy) {
System.out.println("object instanceof HibernateProxy");
}
Gson gson = new GsonBuilder()
.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY)
.create();*/
Map<String, T> map = null;
map = gson.fromJson(gson.toJson(object), new TypeToken<Map<String, T>>() {
}.getType());
return map;
}
}