`
lilin530
  • 浏览: 88463 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中json处理的使用

    博客分类:
  • json
阅读更多

 一把json字符串转换成Java对象。

  1. packag com.linghui.common.util;   
  2. import java.util.ArrayList;   
  3. import java.util.Date;   
  4. import java.util.HashMap;   
  5. import java.util.Iterator;   
  6. import java.util.List;   
  7. import java.util.Map;   
  8.   
  9. import net.sf.json.JSONArray;   
  10. import net.sf.json.JSONObject;   
  11. import net.sf.json.JsonConfig;   
  12. import net.sf.json.util.CycleDetectionStrategy;   
  13.   
  14. import com.linghui.common.util.DateUtil;   
  15. import com.linghui.common.util.jsonutil.DateJsonValueProcessor;   
  16.   
  17.   
  18. public class JsonUtil ...{   
  19.   
  20.       
  21.     public static Object getObject4JsonString(String jsonString,Class pojoCalss)...{   
  22.         Object pojo;   
  23.         JSONObject jsonObject = JSONObject.fromObject( jsonString );     
  24.         pojo = JSONObject.toBean(jsonObject,pojoCalss);   
  25.         return pojo;   
  26.     }   
  27.        
  28.        
  29.        
  30.       
  31.     public static Map getMap4Json(String jsonString)...{   
  32.         JSONObject jsonObject = JSONObject.fromObject( jsonString );     
  33.         Iterator  keyIter = jsonObject.keys();   
  34.         String key;   
  35.         Object value;   
  36.         Map valueMap = new HashMap();   
  37.   
  38.         while( keyIter.hasNext())   
  39.         ...{   
  40.             key = (String)keyIter.next();   
  41.             value = jsonObject.get(key);   
  42.             valueMap.put(key, value);   
  43.         }   
  44.            
  45.         return valueMap;   
  46.     }   
  47.        
  48.        
  49.       
  50.     public static Object[] getObjectArray4Json(String jsonString)...{   
  51.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  52.         return jsonArray.toArray();   
  53.            
  54.     }   
  55.        
  56.        
  57.       
  58.     public static List getList4Json(String jsonString, Class pojoClass)...{   
  59.            
  60.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  61.         JSONObject jsonObject;   
  62.         Object pojoValue;   
  63.            
  64.         List list = new ArrayList();   
  65.         for ( int i = 0 ; i<jsonArray.size(); i++)...{   
  66.                
  67.             jsonObject = jsonArray.getJSONObject(i);   
  68.             pojoValue = JSONObject.toBean(jsonObject,pojoClass);   
  69.             list.add(pojoValue);   
  70.                
  71.         }   
  72.         return list;   
  73.   
  74.     }   
  75.        
  76.       
  77.     public static String[] getStringArray4Json(String jsonString)...{   
  78.            
  79.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  80.         String[] stringArray = new String[jsonArray.size()];   
  81.         forint i = 0 ; i<jsonArray.size() ; i++ )...{   
  82.             stringArray[i] = jsonArray.getString(i);   
  83.                
  84.         }   
  85.            
  86.         return stringArray;   
  87.     }   
  88.        
  89.       
  90.     public static Long[] getLongArray4Json(String jsonString)...{   
  91.            
  92.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  93.         Long[] longArray = new Long[jsonArray.size()];   
  94.         forint i = 0 ; i<jsonArray.size() ; i++ )...{   
  95.             longArray[i] = jsonArray.getLong(i);   
  96.                
  97.         }   
  98.         return longArray;   
  99.     }   
  100.        
  101.       
  102.     public static Integer[] getIntegerArray4Json(String jsonString)...{   
  103.            
  104.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  105.         Integer[] integerArray = new Integer[jsonArray.size()];   
  106.         forint i = 0 ; i<jsonArray.size() ; i++ )...{   
  107.             integerArray[i] = jsonArray.getInt(i);   
  108.                
  109.         }   
  110.         return integerArray;   
  111.     }   
  112.        
  113.       
  114.     public static Date[] getDateArray4Json(String jsonString,String DataFormat)...{   
  115.            
  116.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  117.         Date[] dateArray = new Date[jsonArray.size()];   
  118.         String dateString;   
  119.         Date date;   
  120.            
  121.         forint i = 0 ; i<jsonArray.size() ; i++ )...{   
  122.             dateString = jsonArray.getString(i);   
  123.             date = DateUtil.stringToDate(dateString, DataFormat);   
  124.             dateArray[i] = date;   
  125.                
  126.         }   
  127.         return dateArray;   
  128.     }   
  129.        
  130.       
  131.     public static Double[] getDoubleArray4Json(String jsonString)...{   
  132.            
  133.         JSONArray jsonArray = JSONArray.fromObject(jsonString);   
  134.         Double[] doubleArray = new Double[jsonArray.size()];   
  135.         forint i = 0 ; i<jsonArray.size() ; i++ )...{   
  136.             doubleArray[i] = jsonArray.getDouble(i);   
  137.                
  138.         }   
  139.         return doubleArray;   
  140.     }   
  141.        
  142.        
  143.       
  144.     public static String getJsonString4JavaPOJO(Object javaObj)...{   
  145.            
  146.         JSONObject json;   
  147.         json = JSONObject.fromObject(javaObj);   
  148.         return json.toString();   
  149.            
  150.     }   
  151.        
  152.        
  153.        
  154.        
  155.       
  156.     public static String getJsonString4JavaPOJO(Object javaObj , String dataFormat)...{   
  157.            
  158.         JSONObject json;   
  159.         JsonConfig jsonConfig = configJson(dataFormat);   
  160.         json = JSONObject.fromObject(javaObj,jsonConfig);   
  161.         return json.toString();   
  162.            
  163.            
  164.     }   
  165.        
  166.        
  167.        
  168.       
  169.     public static void main(String[] args) ...{   
  170.         // TODO 自动生成方法存根   
  171.   
  172.     }   
  173.        
  174.       
  175.     public static JsonConfig configJson(String datePattern) ...{      
  176.             JsonConfig jsonConfig = new JsonConfig();      
  177.             jsonConfig.setExcludes(new String[]...{""});      
  178.             jsonConfig.setIgnoreDefaultExcludes(false);      
  179.             jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);      
  180.             jsonConfig.registerJsonValueProcessor(Date.class,      
  181.                 new DateJsonValueProcessor(datePattern));      
  182.              
  183.             return jsonConfig;      
  184.         }     
  185.        
  186.       
  187.     public static JsonConfig configJson(String[] excludes,      
  188.             String datePattern) ...{      
  189.             JsonConfig jsonConfig = new JsonConfig();      
  190.             jsonConfig.setExcludes(excludes);      
  191.             jsonConfig.setIgnoreDefaultExcludes(false);      
  192.             jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);      
  193.             jsonConfig.registerJsonValueProcessor(Date.class,      
  194.                 new DateJsonValueProcessor(datePattern));      
  195.              
  196.             return jsonConfig;      
  197.         }     
  198.   
  199. }

二。把Java对象转换成json字符串。

主要实现把java对常用的一些数据转换成Json,以便前台的调用,具体的操作如下:
public class ConvertJson {

    /**
     * 对象转换为Json
     * @param obj
     * @return
     */
    public static String object2json(Object obj) {
        StringBuilder json = new StringBuilder();
        if (obj == null) {
            json.append("\"\"");
        } else if (obj instanceof String || obj instanceof Integer
                || obj instanceof Float || obj instanceof Boolean
                || obj instanceof Short || obj instanceof Double
                || obj instanceof Long || obj instanceof BigDecimal
                || obj instanceof BigInteger || obj instanceof Byte) {
            json.append("\"").append(string2json(obj.toString())).append("\"");
        } else if (obj instanceof Object[]) {
            json.append(array2json((Object[]) obj));
        } else if (obj instanceof List) {
            json.append(list2json((List<?>) obj));
        } else if (obj instanceof Map) {
            json.append(map2json((Map<?, ?>) obj));
        } else if (obj instanceof Set) {
            json.append(set2json((Set<?>) obj));
        } else {
            json.append(bean2json(obj));
        }
        return json.toString();
    }
   
    /**
     * 对象bean转换为Json
     * @param bean
     * @return
     */
    public static String bean2json(Object bean) {
        StringBuilder json = new StringBuilder();
        json.append("{");
        PropertyDescriptor[] props = null;
        try {
            props = Introspector.getBeanInfo(bean.getClass(), Object.class)
                    .getPropertyDescriptors();
        } catch (IntrospectionException e) {
        }
        if (props != null) {
            for (int i = 0; i < props.length; i++) {
                try {
                    String name = object2json(props[i].getName());
                    String value = object2json(props[i].getReadMethod().invoke(
                            bean));
                    json.append(name);
                    json.append(":");
                    json.append(value);
                    json.append(",");
                } catch (Exception e) {
                }
            }
            json.setCharAt(json.length() - 1, '}');
        } else {
            json.append("}");
        }
        return json.toString();
    }

    /**
     * List集合转换为Json
     * @param list
     * @return
     */
    public static String list2json(List<?> list) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (list != null && list.size() > 0) {
            for (Object obj : list) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }

    /**
     * 对象数组转换为Json
     * @param array
     * @return
     */
    public static String array2json(Object[] array) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (array != null && array.length > 0) {
            for (Object obj : array) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }

    /**
     * Map集合转换为Json
     * @param map
     * @return
     */
    public static String map2json(Map<?, ?> map) {
        StringBuilder json = new StringBuilder();
        json.append("{");
        if (map != null && map.size() > 0) {
            for (Object key : map.keySet()) {
                json.append(object2json(key));
                json.append(":");
                json.append(object2json(map.get(key)));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, '}');
        } else {
            json.append("}");
        }
        return json.toString();
    }

    /**
     * Set集合转为Json
     * @param set
     * @return
     */
    public static String set2json(Set<?> set) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (set != null && set.size() > 0) {
            for (Object obj : set) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }

    /**
     * 字符串转换为Json
     * @param s
     * @return
     */
    public static String string2json(String s) {
        if (s == null)
            return "";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            switch (ch) {
            case '"':
                sb.append("\\\"");
                break;
            case '\\':
                sb.append("\\\\");
                break;
            case '\b':
                sb.append("\\b");
                break;
            case '\f':
                sb.append("\\f");
                break;
            case '\n':
                sb.append("\\n");
                break;
            case '\r':
                sb.append("\\r");
                break;
            case '\t':
                sb.append("\\t");
                break;
            case '/':
                sb.append("\\/");
                break;
            default:
                if (ch >= '\u0000' && ch <= '\u001F') {
                    String ss = Integer.toHexString(ch);
                    sb.append("\\u");
                    for (int k = 0; k < 4 - ss.length(); k++) {
                        sb.append('0');
                    }
                    sb.append(ss.toUpperCase());
                } else {
                    sb.append(ch);
                }
            }
        }
        return sb.toString();
    }

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics