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

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

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

    Terry.Li-彬

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評(píng)論 :: 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對(duì)象
         * 
    @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對(duì)象
         * 
    @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
         *            對(duì)象數(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對(duì)象
         * 
    @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
         *            集合對(duì)象
         * 
    @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 2008-12-30 10:57 禮物 閱讀(841) 評(píng)論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 国产又粗又长又硬免费视频| 亚洲欧洲日产国码www| 男女猛烈无遮掩视频免费软件| 久久精品熟女亚洲av麻豆| 波多野结衣中文字幕免费视频| 亚洲国产精品热久久| 最新国产乱人伦偷精品免费网站| 亚洲午夜福利精品久久| 国产亚洲综合精品一区二区三区| 毛片在线看免费版| 中文字幕亚洲综合小综合在线| 久久九九兔免费精品6| 久久亚洲精品成人av无码网站| 男女作爱在线播放免费网站| 亚洲中文字幕在线观看| 好湿好大好紧好爽免费视频| 免费在线观看你懂的| 真正全免费视频a毛片| 国产小视频在线观看免费| 久久亚洲色WWW成人欧美| 免费视频淫片aa毛片| 亚洲精华国产精华精华液好用| 成人爽A毛片免费看| 亚洲综合久久精品无码色欲| 一个人免费观看在线视频www| 亚洲国产成人九九综合| 99国产精品永久免费视频| 亚洲噜噜噜噜噜影院在线播放| 国产成人精品免费视频大全麻豆| 亚洲欧洲高清有无| 国产桃色在线成免费视频 | 日本特黄特色AAA大片免费| 亚洲AV成人潮喷综合网| 欧洲精品码一区二区三区免费看| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 亚洲情A成黄在线观看动漫软件| 成人无码区免费视频观看| 亚洲欧美乱色情图片| 国产青草视频免费观看97| 无人视频免费观看免费视频 | 亚洲AV永久无码区成人网站|