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

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

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

    夢(mèng)幻之旅

    DEBUG - 天道酬勤

       :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 0 Trackbacks
    package myp;

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

    /**
     * 
    @author   惠萬(wàn)鵬
     * @time     2008-06-13
     * 
    @version  1.0
     
    */
    public class JSON {
        
    /**
         * <p>
         * 本方法用利用反射機(jī)制根據(jù)對(duì)像的域名獲得PO的getter方法名
         * </p>
         * 
         * 
    @param o
         *            :po對(duì)像
         * 
    @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>
         * 根據(jù)域名組裝域名和方法名
         * </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>得到單個(gè)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>得到一個(gè)集合的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("惠萬(wàn)鵬");
            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 閱讀(304) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): TOOL
    主站蜘蛛池模板: 日韩一级视频免费观看| 久草免费手机视频| 成人嫩草影院免费观看| 国产亚洲漂亮白嫩美女在线| 亚洲欧美国产国产一区二区三区 | 国产一级淫片免费播放| 午夜电影免费观看| 四虎永久在线精品免费影视| 免费很黄很色裸乳在线观看| 亚洲国产精品自在拍在线播放| 亚洲国产成人乱码精品女人久久久不卡| 免费夜色污私人影院在线观看| 亚洲国产婷婷综合在线精品| 在线亚洲精品自拍| 亚洲AV永久无码精品成人| 久久精品国产亚洲AV麻豆不卡| 亚洲免费视频在线观看| 亚洲天堂一区二区三区| 亚洲色在线无码国产精品不卡| 亚洲国产精华液2020| 一本久久免费视频| 久久精品免费观看国产| 大学生一级毛片免费看| 国产成人无码区免费A∨视频网站| 日本黄页网站免费| 亚洲无码日韩精品第一页| 亚洲av之男人的天堂网站| 亚洲嫩草影院在线观看| 337P日本欧洲亚洲大胆精品| 国产精品免费大片一区二区| 免费A级毛片无码A∨| 最近中文字幕mv手机免费高清| 国产大片91精品免费观看男同 | 国产成人aaa在线视频免费观看| 亚洲精品一级无码鲁丝片| 亚洲av色影在线| 亚洲欧美日韩中文无线码 | 一级特黄录像免费播放肥| 亚洲黄色免费网站| 国产成人精品123区免费视频| 亚洲韩国精品无码一区二区三区|