<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 一堣而安 閱讀(3923) 評論(0)  編輯  收藏 所屬分類: java

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成人77777在线播放| 国产香蕉免费精品视频| 天天摸天天碰成人免费视频| 亚洲图片在线观看| 免费无码又爽又刺激一高潮| 亚洲第一永久AV网站久久精品男人的天堂AV| 亚洲日日做天天做日日谢| 野花高清在线电影观看免费视频| 亚洲欧洲精品在线| 麻豆一区二区免费播放网站 | 日本一道一区二区免费看| 亚洲午夜一区二区三区| 毛色毛片免费观看| 亚洲国产成人精品无码区二本 | 亚洲视频日韩视频| 日韩欧美一区二区三区免费观看 | 女人被男人躁的女爽免费视频| 人妻仑刮八A级毛片免费看| 亚洲日韩VA无码中文字幕| 中国一级特黄的片子免费| 国产亚洲综合色就色| 91麻豆国产免费观看| 亚洲一区二区三区高清不卡| 久久久久亚洲AV综合波多野结衣 | 久久大香香蕉国产免费网站| 亚洲福利电影一区二区?| 亚洲国模精品一区| 国产三级在线免费| 亚洲三级在线播放| 免费在线黄色网址| 精品亚洲永久免费精品| 国产亚洲福利精品一区二区| 亚洲精品中文字幕无码蜜桃 | 亚洲乱码卡三乱码新区| 亚洲国产精品无码专区在线观看| 精品无码国产污污污免费网站| 人妻免费久久久久久久了| 亚洲乱亚洲乱淫久久| 久久久久噜噜噜亚洲熟女综合| 国产免费爽爽视频免费可以看| 国产成人AV免费观看|