<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 評論 :: 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 禮物 閱讀(2579) 評論(1)  編輯  收藏 所屬分類: java

    評論

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

    主站蜘蛛池模板: 亚洲成年看片在线观看| 亚洲视频在线免费| 18勿入网站免费永久| 亚洲一区二区三区四区在线观看| a级男女仿爱免费视频| 亚洲日韩精品一区二区三区| 免费萌白酱国产一区二区| 亚洲国产视频久久| 免费观看的av毛片的网站| 国产精品亚洲天堂| 国产黄色一级毛片亚洲黄片大全| 精精国产www视频在线观看免费| 亚洲宅男天堂在线观看无病毒| 国产精品免费AV片在线观看| 亚洲欧洲日产v特级毛片| 在线观看无码AV网站永久免费| 亚洲国产精品18久久久久久| 亚洲精品美女久久久久99小说| 中文成人久久久久影院免费观看 | 国产成人免费福利网站| 成人嫩草影院免费观看| 亚洲热线99精品视频| 国产成人精品免费视频动漫 | 区三区激情福利综合中文字幕在线一区亚洲视频1| 妇女自拍偷自拍亚洲精品| 伊人久久精品亚洲午夜| 最近新韩国日本免费观看| 久久久久噜噜噜亚洲熟女综合| 99热在线日韩精品免费| 亚洲女人影院想要爱| 国产小视频在线观看免费| 中文字幕视频在线免费观看| 亚洲精品**中文毛片| 免费人成网站在线播放| 久久一本岛在免费线观看2020| 久久亚洲精品中文字幕三区| 免费观看激色视频网站bd| 亚洲AV无码一区二区三区鸳鸯影院| 久久精品国产亚洲精品| 久久久www成人免费毛片| 男女拍拍拍免费视频网站|