208 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			208 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 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.BangdanCate; | ||
|  | import com.novelbook.android.bean.NovelBlock; | ||
|  | import com.novelbook.android.bean.ProgressType; | ||
|  | import com.novelbook.android.bean.ProgressType; | ||
|  | import com.novelbook.android.db.Novel; | ||
|  | 
 | ||
|  | import org.json.JSONArray; | ||
|  | 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 List<String> | ||
|  |         /*public static Novel getNovel(String json){ | ||
|  |         Novel nv = new Novel(); | ||
|  |         try { | ||
|  |             JSONObject jsonObject = new JSONObject(json); | ||
|  |             nv.setNovelId(jsonObject.getInt("novelId")); | ||
|  |             nv.setLastUpdateTime(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; | ||
|  |     }*/parserStringBlocks(String result,String blockName ) throws JSONException { | ||
|  |         JSONObject jsonObject = new JSONObject(result); | ||
|  |         JSONArray array  =   jsonObject.getJSONArray(blockName); | ||
|  |        List<String> lst = new ArrayList<String>(); | ||
|  |         for( int i=0;i< array.length();i++){ | ||
|  |             lst .add(array.getString(i)); | ||
|  |         } | ||
|  |         return lst; | ||
|  |     } | ||
|  |     public static List<ProgressType> parserProgressType(String restult, String blockName ) throws JSONException { | ||
|  |         JSONObject jsonObject = new JSONObject(restult); | ||
|  |         String strJson = jsonObject.getString(blockName); | ||
|  |         List<ProgressType> list = new ArrayList<ProgressType>(); | ||
|  |         //创建一个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((ProgressType) gson.fromJson(e, ProgressType.class)); | ||
|  |         } | ||
|  |         return list; | ||
|  |     } | ||
|  |     public static List<BangdanCate> parserBangdanCate(String restult, String blockName ) throws JSONException { | ||
|  |         JSONObject jsonObject = new JSONObject(restult); | ||
|  |         String strJson = jsonObject.getString(blockName); | ||
|  |         List<BangdanCate> list = new ArrayList<BangdanCate>(); | ||
|  |         //创建一个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((BangdanCate) gson.fromJson(e, BangdanCate.class)); | ||
|  |         } | ||
|  |         return list; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static List<NovelBlock> parserNovleBlocks(String restult,String blockName ) throws JSONException { | ||
|  |         JSONObject jsonObject = new JSONObject(restult); | ||
|  |         String strJson = jsonObject.getString(blockName); | ||
|  |         List<NovelBlock> list = new ArrayList<NovelBlock>(); | ||
|  |         //创建一个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对象 | ||
|  |             NovelBlock nb = (NovelBlock) gson.fromJson(e, NovelBlock.class); | ||
|  |             if(nb.getNs().size()>0) { | ||
|  |                 list.add(nb); | ||
|  |             } | ||
|  |         } | ||
|  |         return list; | ||
|  |     } | ||
|  |     public static List<Novel> parserJsonArray(String restult,String blockName ) throws JSONException { | ||
|  | 
 | ||
|  |         JSONObject jsonObject = new JSONObject(restult); | ||
|  |         return parserJsonArray(jsonObject,blockName); | ||
|  |     } | ||
|  |     public static List<Novel> parserJsonArray( JSONObject jsonObject,String blockName ) throws JSONException { | ||
|  | 
 | ||
|  |         String resultstr = jsonObject.getString(blockName); | ||
|  | 
 | ||
|  |         List<Novel> list = new ArrayList<Novel>(); | ||
|  |         //创建一个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(); | ||
|  |        // int lastNoveId =0; | ||
|  |         List<Integer> ids = new ArrayList<Integer>(); | ||
|  |         while (it.hasNext()) { | ||
|  |             JsonElement e = (JsonElement) it.next(); | ||
|  |             //JsonElement转换为JavaBean对象 | ||
|  |             Novel nv = (Novel) gson.fromJson(e, Novel.class); | ||
|  |             if(ids.contains(nv.getNovelId())){ | ||
|  |                 continue; | ||
|  |             } | ||
|  |             ids.add(nv.getNovelId()); | ||
|  |          //   lastNoveId =nv.getNovelId(); | ||
|  |             if(nv!=null) { | ||
|  |                 list.add((Novel) gson.fromJson(e, Novel.class)); | ||
|  |             } | ||
|  |         } | ||
|  |         return list; | ||
|  |     } | ||
|  | } |