瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          json

          Posted on 2010-01-20 13:25 瘋狂 閱讀(599) 評論(0)  編輯  收藏

          轉載 
          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 com.baiyyy.polabs.util.DateUtil;        
                 
          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;           
              }           
                    
          }       

          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/cyjchao/archive/2009/07/31/4397894.aspx


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 贵溪市| 浪卡子县| 米易县| 青河县| 曲松县| 贡嘎县| 邯郸县| 湘潭县| 卢龙县| 姜堰市| 定远县| 鄂尔多斯市| 旬阳县| 景洪市| 德庆县| 龙陵县| 武定县| 渝北区| 鱼台县| 葫芦岛市| 搜索| 江华| 中宁县| 龙口市| 和田市| 繁昌县| 抚宁县| 三明市| 遂平县| 滦平县| 应城市| 淳化县| 长兴县| 禹州市| 迭部县| 墨江| 灵璧县| 连江县| 沙洋县| 麻城市| 淮滨县|