package com.novelbook.android.utils; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.novelbook.android.bean.NovelBlock; import com.novelbook.android.db.Novel; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class GsonUtil { private static Gson gson = new Gson(); public static Novel getNovel(String json){ Novel nv = new Novel(); try { JSONObject jsonObject = new JSONObject(json); nv.setNovelId(jsonObject.getInt("novelId")); nv.setLastUpateTime(jsonObject.getLong("lastUpateTime")); nv.setAuthor(jsonObject.getString("author")); nv.setName(jsonObject.getString("name")); nv.setCover(jsonObject.getString("cover")); nv.setNovelType(jsonObject.getString("novelType")); nv.setSmallNovelType(jsonObject.getString("novelType2")); nv.setChapterName(jsonObject.getString("lastestChapterName")); return nv; } catch (JSONException e) { e.printStackTrace(); } return nv; } public static List parserNovleBlocks(String restult,String blockName ) throws JSONException { JSONObject jsonObject = new JSONObject(restult); String strJson = jsonObject.getString(blockName); List list = new ArrayList(); //创建一个Gson对象 // Gson gson = new Gson(); //创建一个JsonParser JsonParser parser = new JsonParser(); //通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象 JsonElement el = parser.parse(strJson); //把JsonElement对象转换成JsonObject JsonObject jsonObj = null; if (el.isJsonObject()) { jsonObj = el.getAsJsonObject(); } //把JsonElement对象转换成JsonArray JsonArray jsonArray = null; if (el.isJsonArray()) { jsonArray = el.getAsJsonArray(); } //遍历JsonArray对象 Iterator it = jsonArray.iterator(); while (it.hasNext()) { JsonElement e = (JsonElement) it.next(); //JsonElement转换为JavaBean对象 list.add((NovelBlock) gson.fromJson(e, NovelBlock.class)); } return list; } public static List parserJsonArray(String restult,String blockName ) throws JSONException { JSONObject jsonObject = new JSONObject(restult); String resultstr = jsonObject.getString(blockName); List list = new ArrayList(); //创建一个Gson对象 // Gson gson = new Gson(); //创建一个JsonParser JsonParser parser = new JsonParser(); //通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象 JsonElement el = parser.parse(resultstr); //把JsonElement对象转换成JsonObject JsonObject jsonObj = null; if (el.isJsonObject()) { jsonObj = el.getAsJsonObject(); } //把JsonElement对象转换成JsonArray JsonArray jsonArray = null; if (el.isJsonArray()) { jsonArray = el.getAsJsonArray(); } //遍历JsonArray对象 Iterator it = jsonArray.iterator(); while (it.hasNext()) { JsonElement e = (JsonElement) it.next(); //JsonElement转换为JavaBean对象 list.add((Novel) gson.fromJson(e, Novel.class)); } return list; } }