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

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

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

    tinguo002

     

    JAVA反射機制,把JavaBean屬性轉成字符串

    package com.jetsum.util;

    import java.io.StringReader;
    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    import antlr.RecognitionException;
    import antlr.TokenStreamException;

    import com.sdicons.json.mapper.JSONMapper;
    import com.sdicons.json.mapper.MapperException;
    import com.sdicons.json.model.JSONArray;
    import com.sdicons.json.model.JSONValue;
    import com.sdicons.json.parser.JSONParser;

    public class JsonUtil {

        
    /**
         * JAVA對象轉換成JSON字符串
         * 
    @param obj
         * 
    @return
         * 
    @throws MapperException
         
    */
        
        
    public static String objectToJsonStr(Object obj) throws MapperException{
            JSONValue jsonValue 
    = JSONMapper.toJSON(obj);  
            String jsonStr 
    = jsonValue.render(false);
            
    return jsonStr;
        }

        
        
    /**
         * 重載objectToJsonStr方法
         * 
    @param obj 需要轉換的JAVA對象
         * 
    @param format 是否格式化
         * 
    @return
         * 
    @throws MapperException
         
    */

        
    public static String objectToJsonStr(Object obj,boolean format) throws MapperException{
            JSONValue jsonValue 
    = JSONMapper.toJSON(obj);  
            String jsonStr 
    = jsonValue.render(format);
            
    return jsonStr;
        }
        
        
        
    /**
         * JSON字符串轉換成JAVA對象
         * 
    @param jsonStr
         * 
    @param cla
         * 
    @return
         * 
    @throws MapperException
         * 
    @throws TokenStreamException
         * 
    @throws RecognitionException
         
    */

        @SuppressWarnings(
    "rawtypes""unchecked" })
        
    public static Object jsonStrToObject(String jsonStr,Class<?> cla) throws MapperException, TokenStreamException, RecognitionException{
            Object obj 
    = null;
            
    try{
                JSONParser parser 
    = new JSONParser(new StringReader(jsonStr));    
                JSONValue jsonValue 
    = parser.nextValue();              
                
    if(jsonValue instanceof com.sdicons.json.model.JSONArray){
                    List list 
    = new ArrayList();
                    JSONArray jsonArray 
    = (JSONArray) jsonValue;
                    
    for(int i=0;i<jsonArray.size();i++){
                        JSONValue jsonObj 
    = jsonArray.get(i);
                        Object javaObj 
    = JSONMapper.toJava(jsonObj,cla); 
                        list.add(javaObj);
                    }

                    obj 
    = list;
                }
    else if(jsonValue instanceof com.sdicons.json.model.JSONObject){
                    obj 
    = JSONMapper.toJava(jsonValue,cla); 
                }
    else{
                    obj 
    = jsonValue;
                }

            }
    catch(Exception e){
                e.printStackTrace();
            }

            
    return obj; 
        }

        
        
    /**
         * 將JAVA對象轉換成JSON字符串
         * 
    @param obj
         * 
    @return
         * 
    @throws IllegalArgumentException
         * 
    @throws IllegalAccessException
         
    */

        @SuppressWarnings(
    "rawtypes")
        
    public static String simpleObjectToJsonStr(Object obj,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
            
    if(obj==null){
                
    return "null";
            }

            String jsonStr 
    = "{";
            Class
    <?> cla = obj.getClass();
            Field fields[] 
    = cla.getDeclaredFields();
            
    for (Field field : fields) {
                field.setAccessible(
    true);
                
    if(field.getType() == long.class){
                    jsonStr 
    += "\""+field.getName()+"\":"+field.getLong(obj)+",";
                }
    else if(field.getType() == double.class){
                    jsonStr 
    += "\""+field.getName()+"\":"+field.getDouble(obj)+",";
                }
    else if(field.getType() == float.class){
                    jsonStr 
    += "\""+field.getName()+"\":"+field.getFloat(obj)+",";
                }
    else if(field.getType() == int.class){
                    jsonStr 
    += "\""+field.getName()+"\":"+field.getInt(obj)+",";
                }
    else if(field.getType() == boolean.class){
                    jsonStr 
    += "\""+field.getName()+"\":"+field.getBoolean(obj)+",";
                }
    else if(field.getType() == Integer.class||field.getType() == Boolean.class
                        
    ||field.getType() == Double.class||field.getType() == Float.class                    
                        
    ||field.getType() == Long.class){                
                    jsonStr 
    += "\""+field.getName()+"\":"+field.get(obj)+",";
                }
    else if(field.getType() == String.class){
                    jsonStr 
    += "\""+field.getName()+"\":\""+field.get(obj)+"\",";
                }
    else if(field.getType() == List.class){
                    String value 
    = simpleListToJsonStr((List<?>)field.get(obj),claList);
                    jsonStr 
    += "\""+field.getName()+"\":"+value+",";                
                }
    else{        
                    
    if(claList!=null&&claList.size()!=0&&claList.contains(field.getType())){
                        String value 
    = simpleObjectToJsonStr(field.get(obj),claList);
                        jsonStr 
    += "\""+field.getName()+"\":"+value+",";                    
                    }
    else{
                        jsonStr 
    += "\""+field.getName()+"\":null,";
                    }

                }

            }

            jsonStr 
    = jsonStr.substring(0,jsonStr.length()-1);
            jsonStr 
    += "}";
                
    return jsonStr;        
        }

        
        
    /**
         * 將JAVA的LIST轉換成JSON字符串
         * 
    @param list
         * 
    @return
         * 
    @throws IllegalArgumentException
         * 
    @throws IllegalAccessException
         
    */

        @SuppressWarnings(
    "rawtypes")
        
    public static String simpleListToJsonStr(List<?> list,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
            
    if(list==null||list.size()==0){
                
    return "[]";
            }

            String jsonStr 
    = "[";
            
    for (Object object : list) {
                jsonStr 
    += simpleObjectToJsonStr(object,claList)+",";
            }

            jsonStr 
    = jsonStr.substring(0,jsonStr.length()-1);
            jsonStr 
    += "]";        
            
    return jsonStr;
        }
        
        
        
    /**
         * 將JAVA的MAP轉換成JSON字符串,
         * 只轉換第一層數據
         * 
    @param map
         * 
    @return
         
    */

        
    public static String simpleMapToJsonStr(Map<?,?> map){
            
    if(map==null||map.isEmpty()){
                
    return "null";
            }

            String jsonStr 
    = "{";
            Set
    <?> keySet = map.keySet();
            
    for (Object key : keySet) {
                jsonStr 
    += "\""+key+"\":\""+map.get(key)+"\",";        
            }

            jsonStr 
    = jsonStr.substring(0,jsonStr.length()-1);
            jsonStr 
    += "}";
            
    return jsonStr;
        }

    }


    文章詳細參考:http://blog.csdn.net/sjiang2142/article/details/6770672

    歡迎大家訪問我的個人網站 萌萌的IT人

    posted on 2014-07-22 15:14 一堣而安 閱讀(3922) 評論(0)  編輯  收藏 所屬分類: java

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: av永久免费网站在线观看| 国产成人综合亚洲绿色| 久久香蕉国产线看免费| 亚洲色偷拍另类无码专区| 精品国产污污免费网站入口在线| 免费夜色污私人影院在线观看| 青青视频免费在线| 亚洲国产一区二区视频网站| 一区二区三区免费高清视频| 中文亚洲成a人片在线观看| 国产色无码精品视频免费| 亚洲国产精品无码成人片久久| a毛片久久免费观看| 亚洲国产一区国产亚洲 | 亚洲一区二区三区免费视频| 一二三四免费观看在线视频中文版| 亚洲综合久久精品无码色欲 | 中文字幕av无码无卡免费| 亚洲精品成a人在线观看☆| 免费中文字幕不卡视频| 羞羞视频免费网站在线看| 久久亚洲精品无码VA大香大香| 色se01短视频永久免费| 国产成人综合久久精品亚洲| 亚洲真人无码永久在线| 久视频精品免费观看99| 亚洲日本天堂在线| 自拍偷自拍亚洲精品情侣| 日本免费xxxx色视频| 国产区图片区小说区亚洲区| 久热综合在线亚洲精品| 成人免费看吃奶视频网站| 国产一级在线免费观看| 亚洲一区二区三区精品视频| 亚洲国产成人五月综合网 | 日韩一区二区a片免费观看 | 免费一级毛suv好看的国产网站 | ass亚洲**毛茸茸pics| 亚洲精品无码专区2| 亚洲美女视频免费| 人妻仑乱A级毛片免费看|