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

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产男女性潮高清免费网站| 亚洲免费视频观看| 宅男666在线永久免费观看 | 永久黄网站色视频免费观看| 亚洲an日韩专区在线| 麻豆国产精品免费视频| 国产.亚洲.欧洲在线| 成年在线网站免费观看无广告| 亚洲成A人片在线播放器| 午夜视频在线观看免费完整版| 亚洲а∨精品天堂在线| 免费国产小视频在线观看| 无码的免费不卡毛片视频| 国产亚洲一区二区手机在线观看 | 国产亚洲精品美女久久久| 久久久精品午夜免费不卡| 久久精品蜜芽亚洲国产AV| av大片在线无码免费| 亚洲中文字幕无码av| 亚洲高清最新av网站| 成人电影在线免费观看| 亚洲精品视频观看| 日本特黄特色aa大片免费| 国产精品无码免费专区午夜 | 可以免费看黄的网站| 精品国产亚洲第一区二区三区| 亚洲成A人片77777国产| 日本免费一区二区三区| 亚洲AV无码久久久久网站蜜桃| 四虎影院永久免费观看| 成全视频高清免费观看电视剧| 亚洲欧洲日韩极速播放| 久久亚洲精品无码播放| 亚洲综合免费视频| 精品国产日韩亚洲一区在线| 午夜亚洲www湿好大| 日韩在线看片免费人成视频播放| 成av免费大片黄在线观看| 亚洲jizzjizz在线播放久| 国产亚洲色婷婷久久99精品91| 国内免费高清在线观看|