<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片APP| 免费a在线观看播放| 婷婷精品国产亚洲AV麻豆不片| 亚洲国产综合第一精品小说| 亚洲GV天堂无码男同在线观看| 一级有奶水毛片免费看| 亚洲免费闲人蜜桃| 亚洲成a人无码av波多野按摩| 久久久久亚洲精品无码系列| 亚洲日韩精品A∨片无码加勒比| 人体大胆做受免费视频| 三年片在线观看免费观看大全动漫| 日韩版码免费福利视频| 亚洲欧洲一区二区三区| 亚洲精品永久www忘忧草| 免费看黄网站在线看| 3344永久在线观看视频免费首页 | 亚洲色大成网站www永久一区| 久久久久亚洲AV无码观看| 国产精品无码亚洲精品2021| 18禁超污无遮挡无码免费网站 | 鲁大师在线影院免费观看| 午夜爱爱免费视频| 亚洲大片在线观看| 亚洲日韩在线中文字幕综合 | 亚洲ⅴ国产v天堂a无码二区| 亚洲爆乳无码精品AAA片蜜桃| 久9热免费精品视频在线观看| 国产中文字幕免费| 亚洲国产成人精品电影| 国产做国产爱免费视频| 免费的一级片网站| 久久精品国产亚洲AV无码娇色|