<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
    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) methods[i].invoke(o, (Object[])null);
                            fv 
    = fv == 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(
    "");
            list.add(po);
            
            po 
    = new PersonPO();
            po.setAge(
    "27");
            po.setName(
    "惠帆");
            po.setSex(
    "");
            list.add(po);
            
            System.out.println(JSON.getJsonInfos(list));
        }


    }
    posted on 2008-06-13 14:33 HUIKK 閱讀(378) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲AV一宅男色影视| 亚洲人成无码网站| 久久久久国产成人精品亚洲午夜| 伊人亚洲综合青草青草久热| 亚洲AV无码成人精品区蜜桃| 国产成人亚洲合集青青草原精品 | 亚洲自偷自拍另类12p| 亚洲精品福利你懂| 免费国产高清毛不卡片基地| 免费观看在线禁片| 色妞WWW精品免费视频| 亚洲天堂中文字幕在线| 亚洲精品国产电影午夜| 亚洲av无码专区在线电影天堂| 国产成人精品日本亚洲专区 | 免费的黄色的网站| 无码一区二区三区免费| 免费毛片在线看片免费丝瓜视频| 亚洲精品久久久www | 亚洲视频国产视频| 337P日本欧洲亚洲大胆精品| 国产自国产自愉自愉免费24区| 一个人看www在线高清免费看 | 亚洲AV无码第一区二区三区| 在线综合亚洲中文精品| 一区二区三区在线免费| 无码乱肉视频免费大全合集| 亚洲综合色视频在线观看| 亚洲一区二区三区深夜天堂| EEUSS影院WWW在线观看免费| 99国产精品永久免费视频| 国产成人毛片亚洲精品| 亚洲av乱码一区二区三区香蕉| 国产精品高清免费网站| 免费国产黄线在线观看| 亚洲国产精品无码久久久蜜芽| 亚洲乱码国产乱码精华| 全部免费毛片在线播放| 亚洲精品老司机在线观看| 性xxxx黑人与亚洲| 久久久久国产精品免费免费不卡|