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

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

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

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    package myp;

    import java.lang.reflect.*;
    import java.util.*;

    /**
     * 
    @author   惠萬鵬
     * @time     2008-06-13
     * 
    @version  1.0
     
    */
    public class JSON {
        
    /**
         * <p>
         * 本方法用利用反射機制根據對像的域名獲得PO的getter方法名
         * </p>
         * 
         * 
    @param o
         *            :po對像
         * 
    @return getter方法名
         
    */
        
    private synchronized static String[][] gFMs(Object o) {
            String[][] fms 
    = null;
            
    if (o != null)
            {
                Field flist[] 
    = o.getClass().getDeclaredFields();
                fms 
    = new String[flist.length][2];
                
    for (int i = 0; i < flist.length; i++
                {
                    fms[i] 
    = JSON.assemblyFM(flist[i].toString());
                }
            }
            
    return fms;
        }

        
    /**
         * <p>
         * 根據域名組裝域名和方法名
         * </p>
         * 
         * 
    @param sfield
         * 
    @return
         
    */
        
    private synchronized static String[] assemblyFM(String sfield)
        {
            String[] fm 
    = new String[2];
            
    int len = sfield.length();
            
    int pointAt = sfield.lastIndexOf("."+ 1;
            
            fm[
    0= sfield.substring(pointAt, len);
            fm[
    1= String.valueOf(fm[0].charAt(0)).toUpperCase();
            
            
    if (fm[0].length() > 1
            {
                fm[
    1+= fm[0].substring(1, fm[0].length());
            }
            
    if (sfield.indexOf("boolean"> 0)
            {
                fm[
    1= "is" + fm[1];
            } 
            
    else 
            {
                fm[
    1= "get" + fm[1];
            }
            fm[
    1+= "()";
            
    return fm;
        }
        
        
    /**
         * <p>po的方法里是否含有域的getter方法</p>
         * 
    @param fms
         * 
    @param method
         * 
    @return
         
    */
        
    private static String getFN(String[][] fms, String method)
        {
            
    if(fms != null)
            {
                
    int len = method.length();
                
    int pointAt = method.lastIndexOf("."+ 1;
                String methodName 
    = method.substring(pointAt, len);
                
    for(int i = 0; i < fms.length; i++)
                {
                    
    if(methodName.equals(fms[i][1]))
                    {
                        
    return fms[i][0];
                    }
                }
            }
            
    return "";
        }

        
    /**
         * <p>得到單個po的json info</p>
         * 
    @param o
         * 
    @return
         
    */
        
    private static String getJsonInfo(Object o) {
            StringBuffer jsonInfo 
    = new StringBuffer("{");
            String[][] fms 
    = JSON.gFMs(o);
            
    if(fms != null){
                String fn 
    = "";
                String fv 
    = "";
                Method[] methods 
    = o.getClass().getDeclaredMethods();
                
    for(int i = 0; i < methods.length; i++)
                {
                    fn 
    = JSON.getFN(fms,methods[i].toString());
                    
    if(fn != null && !fn.equals(""))
                    {
                        jsonInfo.append(
    "\"");
                        jsonInfo.append(fn);
                        jsonInfo.append(
    "\"");
                        jsonInfo.append(":");
                        jsonInfo.append(
    "\"");
                        try
                        {
                            fv 
    = String.valueOf(methods[i].invoke(o, (Object[])null));
                            fv 
    = fv.equals("null"? "" : fv;
                            jsonInfo.append(fv);
                        }
                        
    catch(Exception e)
                        {
                            jsonInfo.append(
    "");
                        }
                        jsonInfo.append(
    "\",");
                    }
                }
                
            }
            
    int len = jsonInfo.length();
            String strEnd 
    = jsonInfo.substring(len - 1, len);
            
    if(strEnd != null && strEnd.equals(","))
            {
                jsonInfo.delete(len 
    - 1, len);
            }
            jsonInfo.append(
    "}");
            
    return jsonInfo.toString();
        }
        
        
    /**
         * <p>得到一個集合的json信息</p>
         * 
    @param list
         * 
    @return
         
    */
        
    public static String getJsonInfos(List<Object> list){
            StringBuffer infos 
    = new StringBuffer();
            infos.append(
    "{[");
            
    if(list != null)
            {
                Iterator
    <Object> itObj = list.iterator();
                
    while(itObj.hasNext())
                {
                    infos.append(JSON.getJsonInfo(itObj.next()));
                    
    if(itObj.hasNext())
                    {
                        infos.append(
    ",");
                    }
                }
            }
            infos.append(
    "]}");
            
    return infos.toString();
        }
        
    public static void main(String[] args) {
            List
    <Object> list = new ArrayList<Object>();
            
            PersonPO po 
    = new PersonPO();
            po.setAge(
    "25");
            
    //po.setName("惠萬鵬");
            po.setSex("");
            po.setParty(
    true);
            list.add(po);
            
            po 
    = new PersonPO();
            po.setAge(
    "27");
            po.setName(
    "惠帆");
            po.setSex(
    "");
            po.setParty(
    false);
            list.add(po);
            
            System.out.println(JSON.getJsonInfos(list));
        }

    }
    posted on 2008-06-13 18:04 HUIKK 閱讀(306) 評論(0)  編輯  收藏 所屬分類: TOOL
    主站蜘蛛池模板: 你懂得的在线观看免费视频| 亚洲精品午夜国产va久久| 免费一级毛片在线播放放视频| 国色精品卡一卡2卡3卡4卡免费| 亚洲综合综合在线| 成年人免费的视频| 亚洲综合久久精品无码色欲| 无码一区二区三区免费视频| 欧洲 亚洲 国产图片综合| 中文字幕人成无码免费视频| 亚洲综合av一区二区三区| 日韩毛片免费在线观看| 美女黄色毛片免费看| 亚洲综合色成在线播放| 中文字幕在线观看免费| 亚洲人成在线影院| 97热久久免费频精品99| 亚洲精品伦理熟女国产一区二区 | av午夜福利一片免费看久久| 亚洲欧洲久久av| 丝瓜app免费下载网址进入ios| 久久精品国产精品亚洲精品| 67pao强力打造高清免费| 久久夜色精品国产噜噜亚洲a| 四虎永久成人免费影院域名| 国产特黄特色的大片观看免费视频| 国产日韩亚洲大尺度高清| 亚洲综合免费视频| 鲁死你资源站亚洲av| 国产亚洲精AA在线观看SEE| 最近中文字幕高清免费中文字幕mv | 黄床大片免费30分钟国产精品| 亚洲v高清理论电影| 免费电视剧在线观看| 免费夜色污私人影院网站| 亚洲激情在线视频| 免费看片A级毛片免费看| 国产色爽免费无码视频| 亚洲av一本岛在线播放| 中文字幕亚洲一区二区三区| 4444www免费看|