<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

     

    package org.sjw.utils;

    import java.beans.IntrospectionException;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    public class JsonUtils {
        
    public static String stringToJson(String s) {
            
    if (s == null{
                
    return nullToJson();
            }

            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();
        }


        
    public static String nullToJson() {
            
    return "";
        }


        
    public static String objectToJson(Object obj) {
            StringBuilder json 
    = new StringBuilder();
            
    if (obj == null{
                json.append(
    "\"\"");
            }
     else if (obj instanceof Number) {
                json.append(numberToJson((Number) obj));
            }
     else if (obj instanceof Boolean) {
                json.append(booleanToJson((Boolean) obj));
            }
     else if (obj instanceof String) {
                json.append(
    "\"").append(stringToJson(obj.toString())).append("\"");
            }
     else if (obj instanceof Object[]) {
                json.append(arrayToJson((Object[]) obj));
            }
     else if (obj instanceof List) {
                json.append(listToJson((List
    <?>) obj));
            }
     else if (obj instanceof Map) {
                json.append(mapToJson((Map
    <??>) obj));
            }
     else if (obj instanceof Set) {
                json.append(setToJson((Set
    <?>) obj));
            }
     else {
                json.append(beanToJson(obj));
            }

            
    return json.toString();
        }


        
    public static String numberToJson(Number number) {
            
    return number.toString();
        }


        
    public static String booleanToJson(Boolean bool) {
            
    return bool.toString();
        }


        
    /** *//**
         * 
    @param bean
         *            bean對象
         * 
    @return String
         
    */

        
    public static String beanToJson(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 
    = objectToJson(props[i].getName());
                        String value 
    = objectToJson(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();
        }


        
    /** *//**
         * 
    @param list
         *            list對象
         * 
    @return String
         
    */

        
    public static String listToJson(List<?> list) {
            StringBuilder json 
    = new StringBuilder();
            json.append(
    "[");
            
    if (list != null && list.size() > 0{
                
    for (Object obj : list) {
                    json.append(objectToJson(obj));
                    json.append(
    ",");
                }

                json.setCharAt(json.length() 
    - 1']');
            }
     else {
                json.append(
    "]");
            }

            
    return json.toString();
        }


        
    /** *//**
         * 
    @param array
         *            對象數(shù)組
         * 
    @return String
         
    */

        
    public static String arrayToJson(Object[] array) {
            StringBuilder json 
    = new StringBuilder();
            json.append(
    "[");
            
    if (array != null && array.length > 0{
                
    for (Object obj : array) {
                    json.append(objectToJson(obj));
                    json.append(
    ",");
                }

                json.setCharAt(json.length() 
    - 1']');
            }
     else {
                json.append(
    "]");
            }

            
    return json.toString();
        }


        
    /** *//**
         * 
    @param map
         *            map對象
         * 
    @return String
         
    */

        
    public static String mapToJson(Map<??> map) {
            StringBuilder json 
    = new StringBuilder();
            json.append(
    "{");
            
    if (map != null && map.size() > 0{
                
    for (Object key : map.keySet()) {
                    json.append(objectToJson(key));
                    json.append(
    ":");
                    json.append(objectToJson(map.get(key)));
                    json.append(
    ",");
                }

                json.setCharAt(json.length() 
    - 1'}');
            }
     else {
                json.append(
    "}");
            }

            
    return json.toString();
        }


        
    /** *//**
         * 
    @param set
         *            集合對象
         * 
    @return String
         
    */

        
    public static String setToJson(Set<?> set) {
            StringBuilder json 
    = new StringBuilder();
            json.append(
    "[");
            
    if (set != null && set.size() > 0{
                
    for (Object obj : set) {
                    json.append(objectToJson(obj));
                    json.append(
    ",");
                }

                json.setCharAt(json.length() 
    - 1']');
            }
     else {
                json.append(
    "]");
            }

            
    return json.toString();
        }


    }

    posted on 2009-01-05 23:11 禮物 閱讀(2578) 評論(1)  編輯  收藏 所屬分類: java

    評論

    # re: 將任意格式轉(zhuǎn)換為JSON數(shù)據(jù)格式的工具類 2015-06-19 14:19
    ["d":“氣而去”]  回復  更多評論
      

    主站蜘蛛池模板: AV免费网址在线观看| 免费无码中文字幕A级毛片| 91视频国产免费| 亚洲欧洲日韩在线电影| 久久中文字幕免费视频| 亚洲一区精品中文字幕| 99热在线免费播放| 亚洲免费在线观看视频| 97在线线免费观看视频在线观看| 亚洲另类精品xxxx人妖| 国产香蕉九九久久精品免费| 亚洲日韩一区二区一无码| 免费视频中文字幕| 美女羞羞免费视频网站| 亚洲狠狠爱综合影院婷婷| www在线观看播放免费视频日本| 久久乐国产精品亚洲综合| 91在线免费观看| 亚洲国产韩国一区二区| 99久久免费精品国产72精品九九| 亚洲国产成人综合精品| 亚洲国产av无码精品| 东北美女野外bbwbbw免费| 亚洲国产精品久久久久网站| 免费毛片a在线观看67194| 亚洲av无码专区首页| 国产成人99久久亚洲综合精品| 精品国产麻豆免费人成网站| 亚洲毛片无码专区亚洲乱| 啦啦啦中文在线观看电视剧免费版| 在线观看亚洲免费视频| 亚洲午夜未满十八勿入网站2| 99re6热视频精品免费观看| 成人亚洲国产va天堂| 亚洲国产婷婷综合在线精品| 久久久久久影院久久久久免费精品国产小说 | 亚洲欧洲日产国码www| 精品剧情v国产在免费线观看| 精品国产免费一区二区三区| 亚洲精品一区二区三区四区乱码 | 国产精品成人免费观看|