代码已经整理好,效果如下:

    Json.Utils:

import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import com.google.gson.JsonParseException;import com.google.gson.JsonParser;import com.haiersmart.utilslib.data.StringUtil;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.List;public class JsonUtils {   /** 获取Gson实例 **/   private static Gson getInstance() {      GsonBuilder gsonBuilder = new GsonBuilder();      gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss");      gsonBuilder.registerTypeAdapter(Object.class, new NaturalDeserializer());      Gson gson = gsonBuilder.create();      return gson;   }   /**    * 解析集合    *     * @param json    *            数据    * @param beanClass    *            泛型    * @return 泛型集合    */   public static  List getBeanList(String json, Class beanClass) {      return getBeanList(json, null, beanClass);   }   /**    * 解析集合    *     * @param json    * @param key    *            json数据key    * @param beanClass    *            泛型    * @return 泛型集合    */   public static  List getBeanList(String json, String key, Class beanClass) {      JsonParser parser = new JsonParser();      Gson gson = getInstance();      JsonElement contentElement = null;      List elementList = new ArrayList();//    try {//       @SuppressWarnings("unused")//       JSONObject object = new JSONObject(json);//    } catch (JSONException e1) {//       return elementList;//    }      if (StringUtil.isBlank(key) || StringUtil.isBlank(json)) {         contentElement = parser.parse(json).getAsJsonArray();      } else {         JsonObject jsonObject = parser.parse(json).getAsJsonObject();         contentElement = jsonObject.get(key);      }      if (StringUtil.isBlank(contentElement))         return elementList;      if (contentElement.isJsonArray()) {         JsonArray jsonArray = contentElement.getAsJsonArray();         try {            for (int i = 0; i < jsonArray.size(); i++) {               JsonElement jsonObj = jsonArray.get(i);               T entity = gson.fromJson(jsonObj, beanClass);               elementList.add(entity);            }         } catch (ClassCastException e) {         } catch (JsonParseException e) {         }         return elementList;      }      return elementList;   }   /**    * 解析单个bean    *     * @param json    * @param clazz    * @return 泛型    */   public static  T getBean(String json, final Class clazz) {      return getBean(json, null, clazz);   }   /**    * 解析单个bean    *     * @param json    * @param key    *            解析的json数据key    * @param clazz    * @return 泛型    */   @SuppressWarnings("unchecked")   public static  T getBean(String json, String key, final Class clazz) {      JsonParser parser = new JsonParser();      Gson gson = getInstance();      JsonElement contentElement = null;      try {         @SuppressWarnings("unused")         JSONObject object = new JSONObject(json);      } catch (JSONException e1) {         return null;      }      if (StringUtil.isBlank(key)) {         contentElement = parser.parse(json).getAsJsonObject();      } else {         JsonObject jsonObject = parser.parse(json).getAsJsonObject();         contentElement = jsonObject.get(key);      }      if (StringUtil.isBlank(contentElement))         return null;      if (contentElement.isJsonPrimitive()) {         if (clazz == String.class) {            return (T) contentElement.getAsString();         } else if (clazz == Integer.class) {            return (T) Integer.valueOf(contentElement.getAsString());         } else if (clazz == Number.class) {            return (T) contentElement.getAsNumber();         }      } else if (contentElement.isJsonObject()) {         JsonObject contentObj = contentElement.getAsJsonObject();         T content = null;         try {            content = gson.fromJson(contentObj, clazz);         } catch (ClassCastException e) {         } catch (JsonParseException e) {            System.out.println(e.getStackTrace().toString());         }         return content;      }      return null;   }   /**    * 根据key 解析相关字段    *     * @param json    * @param key    * @return    */   public static Object getObjectByKey(String json, String key, String targetkey) {      JsonParser parser = new JsonParser();      JsonElement jsonElement;      try {         JsonObject jsonObject = parser.parse(json).getAsJsonObject();         jsonElement = jsonObject.get(key);         return jsonElement.getAsJsonObject().get(targetkey).toString();      } catch (Exception e) {         return null;      }   }   /** JSONObject生成Json字符串 **/   public static String getJSONStringByJSONObject(JSONObject jsonobject) {      String s;      if (jsonobject == null)         s = "";      else         s = jsonobject.toString();      return s;   }   /** 解析JSONObject Json字符串 **/   public static JSONObject getJSONObjectByJSONString(String str) {      str = str.replace("\ufeff", "");      JSONObject jsonobject;      if (str != null)         try {            jsonobject = new JSONObject(str);         } catch (JSONException _ex) {            jsonobject = null;         }      else         jsonobject = null;      return jsonobject;   }   /** 解析JSONArray Json字符串 **/   public static JSONArray getJSONArrayByJSONString(String str) {      JSONArray jsonarray;      if (str != null)         try {            jsonarray = new JSONArray(str);         } catch (JSONException _ex) {            jsonarray = null;         }      else         jsonarray = null;      return jsonarray;   }}

    总结:现在的项目都是fastjson和Gson一起的,大家需要自己封装好util方便调用~

    

更多相关文章

  1. android webview 设置
  2. android ping 网络延迟
  3. android触屏手势识别全解析
  4. Android(安卓)关于WebView的相关属性
  5. 转:Android联系人数据库全解析
  6. Android技术文章收集
  7. 【Android】PA4D_CH6 使用Internat资源
  8. Android截屏及图片解析
  9. 实例教程四:采用Pull解析器解析和生成XML内容

随机推荐

  1. Android 7.1 根据4G共享动态调整以太网优
  2. android上的i-jetty (2)用Servlet显示Andro
  3. 无法安装ADT(无法访问https://dl-ssl.goog
  4. SystemServer
  5. Fedora 12安装Android SDK
  6. android 呼吸灯实现源码
  7. Android中使用 MediaExtractor 和 MediaM
  8. Android(安卓)SDK 4.0.3 开发环境配置及
  9. android am命令
  10. Android 经典示例,初学者的绝好源码资料