package com.pandaq.pandaeye.utils;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
import com.pandaq.pandaeye.modules.news.newsdetail.NewsContent;
import java.lang.reflect.Type;
/**
* Created by PandaQ on 2017/2/23.
* 新闻json需要单独处理再解析
*/
public class JsonUtils {
//读取并解析网页新闻json数据
public static NewsContent readJsonNewsContent(String res, String docId) {
NewsContent newsDetailBean = null;
try {
JsonParser parser = new JsonParser();
JsonObject jsonObj = parser.parse(res).getAsJsonObject();
JsonElement jsonElement = jsonObj.get(docId);
if (jsonElement == null) {
return null;
}
newsDetailBean = JsonUtils.deserialize(jsonElement.getAsJsonObject(), NewsContent.class);
} catch (Exception e) {
e.printStackTrace();
}
return newsDetailBean;
}
private static Gson mGson = new Gson();
/**
* 将对象准换为json字符串
*
* @param object
* @param <T>
* @return
*/
public static <T> String serialize(T object) {
return mGson.toJson(object);
}
/**
* 将json字符串转换为对象
*
* @param json
* @param clz
* @param <T>
* @return
*/
public static <T> T deserialize(String json, Class<T> clz) throws JsonSyntaxException {
return mGson.fromJson(json, clz);
}
/**
* 将json对象转换为实体对象
*
* @param json
* @param clz
* @param <T>
* @return
* @throws JsonSyntaxException
*/
public static <T> T deserialize(JsonObject json, Class<T> clz) throws JsonSyntaxException {
return mGson.fromJson(json, clz);
}
/**
* 将json字符串转换为对象
*
* @param json
* @param type
* @param <T>
* @return
*/
public static <T> T deserialize(String json, Type type) throws JsonSyntaxException {
return mGson.fromJson(json, type);
}
}