package com.dl7.mvp.utils;
import com.dl7.mvp.engine.danmaku.DanmakuInfoTypeAdapter;
import com.dl7.mvp.local.table.DanmakuInfo;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
import java.util.ArrayList;
import java.util.List;
/**
* Created by long on 2016/5/9.
* Gson数据转化处理
*/
public final class GsonHelper {
private static Gson sGson;
private static JsonParser sJsonParser = new JsonParser();
static {
sGson = new GsonBuilder()
.registerTypeAdapter(DanmakuInfo.class, new DanmakuInfoTypeAdapter())
.create();
}
private GsonHelper() {}
/**
* 将json数据转化为实体数据
* @param jsonData json字符串
* @param entityClass 类型
* @return 实体
*/
public static <T> T convertEntity(String jsonData, Class<T> entityClass) {
T entity = null;
try {
entity = sGson.fromJson(jsonData.toString(), entityClass);
} catch (JsonSyntaxException e) {
e.printStackTrace();
}
return entity;
}
/**
* 将json数据转化为实体列表数据
* @param jsonData json字符串
* @param entityClass 类型
* @return 实体列表
*/
public static <T> List<T> convertEntities(String jsonData, Class<T> entityClass) {
List<T> entities = new ArrayList<>();
try {
JsonArray jsonArray = sJsonParser.parse(jsonData).getAsJsonArray();
for (JsonElement element : jsonArray) {
entities.add(sGson.fromJson(element, entityClass));
}
} catch (JsonSyntaxException e) {
e.printStackTrace();
}
return entities;
}
/**
* 将 Object 对象转为 String
* @param jsonObject json对象
* @return json字符串
*/
public static String object2JsonStr(Object jsonObject) {
return sGson.toJson(jsonObject);
}
}