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); } }