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

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

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

    Terry.Li-彬

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      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
         *            對象數組
         * 
    @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: 將任意格式轉換為JSON數據格式的工具類 2015-06-19 14:19
    ["d":“氣而去”]  回復  更多評論
      

    主站蜘蛛池模板: aa级女人大片喷水视频免费| AV免费网址在线观看| 亚洲精品国产福利片| 免费日本黄色网址| 五月婷婷在线免费观看| 一个人看的hd免费视频| 亚洲大片免费观看| 国产日产亚洲系列| 永久免费观看的毛片的网站| 成全高清在线观看免费| 亚洲乱色伦图片区小说| 911精品国产亚洲日本美国韩国| 国产午夜免费秋霞影院| 青娱乐免费在线视频| 男人进去女人爽免费视频国产| 亚洲精品色在线网站| 亚洲国产夜色在线观看| 久久青青草原亚洲AV无码麻豆| 国产91在线免费| 精品国产免费观看| 日韩精品福利片午夜免费观着| 国产免费无码一区二区| 暖暖免费中文在线日本| 亚洲av乱码中文一区二区三区 | 亚洲国产中文在线二区三区免| 久久国产精品亚洲综合| 色久悠悠婷婷综合在线亚洲| 又大又硬又爽免费视频| 可以免费观看的一级毛片| 精品国产免费一区二区| 夜夜嘿视频免费看| 免费v片在线观看无遮挡| 精品亚洲一区二区三区在线播放| 日韩免费电影在线观看| 日韩一区二区在线免费观看| 日本牲交大片免费观看| 亚洲国产精品自在拍在线播放| 免费日韩在线视频| 一本色道久久综合亚洲精品| 亚洲国产无套无码av电影| 亚洲av永久无码精品国产精品|