Java操作json的通用类

    xiaoxiao2025-11-16  2

    package com.baiyyy.polabs.util.json;                    import  java.text.ParseException;  import java.util.ArrayList;  import java.util.Date;  import java.util.HashMap;  import java.util.Iterator;  import java.util.List;  import java.util.Map;    import net.sf.json.JSONArray;  import net.sf.json.JSONObject;  import net.sf.json.JsonConfig;  import net.sf.json.util.CycleDetectionStrategy;            /**         * 处理json的工具类,负责json数据转换成java对象和java对象转换成json         *          * @author yongtree         * @date 2008-11-22 上午10:47:13         * @version 1.0         */          public class JsonUtil {                         /**             * 从一个JSON 对象字符格式中得到一个java对象             *              * @param jsonString             * @param pojoCalss             * @return             */              public static Object  getObject4JsonString(String jsonString, Class pojoCalss)  {                   Object pojo;                   JSONObject jsonObject = JSONObject.fromObject(jsonString);                   pojo = JSONObject.toBean(jsonObject, pojoCalss);                   return pojo;               }                                   /**             * 从json HASH表达式中获取一个map,改map支持嵌套功能             *              * @param jsonString             * @return             */              public static Map getMap4Json(String jsonString) {                   JSONObject jsonObject = JSONObject.fromObject(jsonString);                  Iterator keyIter = jsonObject.keys();                   String key;                   Object value;                   Map valueMap = new HashMap();                             while (keyIter.hasNext()) {                       key = (String) keyIter.next();                       value = jsonObject.get(key);                       valueMap.put(key, value);                   }                             return valueMap;               }                                   /**             * 从json数组中得到相应java数组             *              * @param jsonString             * @return             */              public static Object[] getObjectArray4Json(String jsonString) {                   JSONArray jsonArray = JSONArray.fromObject(jsonString);                   return jsonArray.toArray();                         }                                   /**             * 从json对象集合表达式中得到一个java对象列表             *              * @param jsonString             * @param pojoClass             * @return             */              public static List getList4Json(String jsonString, Class pojoClass) {                             JSONArray jsonArray = JSONArray.fromObject(jsonString);                   JSONObject jsonObject;                   Object pojoValue;                             List list = new ArrayList();                   for (int i = 0; i < jsonArray.size(); i++) {                                 jsonObject = jsonArray.getJSONObject(i);                       pojoValue = JSONObject.toBean(jsonObject, pojoClass);                       list.add(pojoValue);                            }                   return list;                         }                                   /**             * 从json数组中解析出java字符串数组             *              * @param jsonString             * @return             */              public static String[] getStringArray4Json(String jsonString) {                             JSONArray jsonArray = JSONArray.fromObject(jsonString);                   String[] stringArray = new String[jsonArray.size()];                   for (int i = 0; i < jsonArray.size(); i++) {                       stringArray[i] = jsonArray.getString(i);                             }                             return stringArray;               }                                   /**             * 从json数组中解析出javaLong型对象数组             *              * @param jsonString             * @return             */              public static Long[] getLongArray4Json(String jsonString) {                             JSONArray jsonArray = JSONArray.fromObject(jsonString);                   Long[] longArray = new Long[jsonArray.size()];                   for (int i = 0; i < jsonArray.size(); i++) {                       longArray[i] = jsonArray.getLong(i);                             }                   return longArray;               }                                   /**             * 从json数组中解析出java Integer型对象数组             *              * @param jsonString             * @return            */              public static Integer[] getIntegerArray4Json(String jsonString) {                             JSONArray jsonArray = JSONArray.fromObject(jsonString);                   Integer[] integerArray = new Integer[jsonArray.size()];                   for (int i = 0; i < jsonArray.size(); i++) {                       integerArray[i] = jsonArray.getInt(i);                             }                   return integerArray;               }                         /**             * 从json数组中解析出java Date 型对象数组,使用本方法必须保证             *              * @param jsonString             * @return             * @throws ParseException             */              public static Date[] getDateArray4Json(String jsonString, String DataFormat)                       throws ParseException {                             JSONArray jsonArray = JSONArray.fromObject(jsonString);                   Date[] dateArray = new Date[jsonArray.size()];                   String dateString;                   Date date;                             for (int i = 0; i < jsonArray.size(); i++) {                       dateString = jsonArray.getString(i);                       date = DateUtil.parseDate(dateString, DataFormat);                       dateArray[i] = date;                             }                   return dateArray;               }                                   /**             * 从json数组中解析出java Integer型对象数组             *              * @param jsonString             * @return             */              public static Double[] getDoubleArray4Json(String jsonString) {                             JSONArray jsonArray = JSONArray.fromObject(jsonString);                   Double[] doubleArray = new Double[jsonArray.size()];                   for (int i = 0; i < jsonArray.size(); i++) {                      doubleArray[i] = jsonArray.getDouble(i);                             }                   return doubleArray;               }                                   /**             * 将java对象转换成json字符串             *              * @param javaObj             * @return             */              public static String getJsonString4JavaPOJO(Object javaObj) {                             JSONObject json;                   json = JSONObject.fromObject(javaObj);                   return json.toString();                         }                         /**             * 将java对象转换成json字符串,并设定日期格式             *              * @param javaObj             * @param dataFormat             * @return             */              public static String getJsonString4JavaPOJO(Object javaObj,                       String dataFormat) {                             JSONObject json;                   JsonConfig jsonConfig = configJson(dataFormat);                   json = JSONObject.fromObject(javaObj, jsonConfig);                   return json.toString();                         }                         /**             * JSON 时间解析器具             *              * @param datePattern             * @return             */              public static JsonConfig configJson(String datePattern) {                   JsonConfig jsonConfig = new JsonConfig();                   jsonConfig.setExcludes(new String[] { "" });                   jsonConfig.setIgnoreDefaultExcludes(false);                  jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);                   jsonConfig.registerJsonValueProcessor(Date.class,                           new JsonDateValueProcessor(datePattern));                             return jsonConfig;               }                                   /**             * 除去不想生成的字段(特别适合去掉级联的对象)+时间转换             * @param excludes 除去不想生成的字段             * @param datePattern             * @return             */              public static JsonConfig configJson(String[] excludes, String datePattern) {                   JsonConfig jsonConfig = new JsonConfig();                   jsonConfig.setExcludes(excludes);                   jsonConfig.setIgnoreDefaultExcludes(true);                   jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);                   jsonConfig.registerJsonValueProcessor(Date.class,                           new JsonDateValueProcessor(datePattern));                             return jsonConfig;               }                     }       ******************************************************************************************* 日期转换  *******************************************************************************************    package com.baiyyy.polabs.util.json;                    import  java.text.SimpleDateFormat;           import java.util.Date;                     import net.sf.json.JsonConfig;           import net.sf.json.processors.JsonValueProcessor;                     /**         *          * @author yongtree         * @date 2008-11-22 上午10:54:19         * @version 1.0         */          public class JsonDateValueProcessor implements JsonValueProcessor {                                  private String format = "yyyy-MM-dd HH:mm:ss";                               public JsonDateValueProcessor() {                               }                               public JsonDateValueProcessor(String format) {                      this.format = format;                  }                               public Object processArrayValue(Object value, JsonConfig jsonConfig) {                      String[] obj = {};                      if (value instanceof Date[]) {                          SimpleDateFormat sf = new SimpleDateFormat(format);                          Date[] dates = (Date[]) value;                          obj = new String[dates.length];                          for (int i = 0; i < dates.length; i++) {                              obj[i] = sf.format(dates[i]);                          }                      }                      return obj;                  }                               public Object processObjectValue(String key, Object value, JsonConfig jsonConfig)  {                      if (value instanceof Date) {                          String str = new SimpleDateFormat(format).format((Date) value);                          return str;                      }                      return value == null ? null : value.toString();                  }                               public String getFormat() {                      return format;                  }                               public void setFormat(String format) {                      this.format = format;                  }                           }           
    转载请注明原文地址: https://ju.6miu.com/read-1304250.html
    最新回复(0)