<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)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久青草青青国产亚洲免观 | 精品成人一区二区三区免费视频| 免费观看四虎精品国产永久| 二区久久国产乱子伦免费精品| 久久久国产精品亚洲一区| 啦啦啦www免费视频| 国产一级a毛一级a看免费视频| 亚洲人成人77777网站不卡| 免费人成视频在线观看不卡| 国产好大好硬好爽免费不卡| 亚洲色大成网站www| 国产亚洲人成网站观看| 免费黄色网址入口| a在线观看免费网址大全| 中文无码亚洲精品字幕| 国产美女亚洲精品久久久综合| 国产精品视频免费观看| 一个人免费观看www视频| 亚洲va成无码人在线观看| 亚洲午夜激情视频| 一二三四视频在线观看中文版免费| www成人免费观看网站| 亚洲人成网站在线观看播放青青 | 亚洲免费网站在线观看| 久久精品国产亚洲Aⅴ香蕉| 欧美三级在线电影免费| 99视频免费在线观看| 日韩亚洲人成网站| 亚洲永久中文字幕在线| 亚洲精品无码久久久久去q| 暖暖免费高清日本一区二区三区| 99久久久国产精品免费蜜臀| 一级毛片大全免费播放下载 | 亚洲一级毛片免费观看| 亚洲精品无码久久久久去q| 免费国产成人午夜私人影视 | 免费看搞黄视频网站| jizz在线免费播放| 怡红院亚洲红怡院在线观看| 亚洲制服丝袜中文字幕| 亚洲精品线在线观看|