注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

流星永恒的博客

JSF,Facelets,Rich(Prime)Faces,和java的笔记

 
 
 

日志

 
 

Simple java bean to json string  

2010-02-25 11:17:05|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.util.Date;
import org.apache.commons.beanutils.BeanUtils;

/**
 *
 * @author Daneil
 */
public class Test {
    public static void main(String[] args) {
      User u = new User("yyq","DV", 25, new Timestamp(new Date().getTime()));
      Address address = new Address("China", "ChangSha", "YueluQu", "Houjie");
     String jsonUser = bean2Json(u);
     String jsonAddr = bean2Json(address);
        System.out.println(jsonUser);
        System.out.println(jsonAddr);
    }

    /**
     * convert simple bean(not reference other beans) to json string<br/>
     * complex object can be processed as serials simple bean
     * @param <T>
     * @param clazz
     * @param t
     * @return
     */
    public static <T>String bean2Json(T t){
      Method []methods = t.getClass().getDeclaredMethods();
      String propertyName[] = new String[methods.length];
      int capacity = 0;
        for (int i = 0; i < methods.length; i++) {
            String name = methods[i].getName();
            if(name.matches("set[A-Z$]\w+")){//is setter
             StringBuilder sb = new StringBuilder(name.substring(3,name.length()));
             sb.setCharAt(0, Character.toLowerCase(sb.charAt(0)));
             propertyName[capacity] = sb.toString();
             capacity ++;
            }
        }

      StringBuilder builder = new StringBuilder();
      builder.append("{");
        for (int i = 0; i < capacity; i++) {
               try {
                Object value = BeanUtils.getProperty(t, propertyName[i]);
                builder.append(propertyName[i]);
                builder.append("=\"");
                builder.append(value);
                if(i<capacity-1){
                builder.append("\", ");
                }else{
                 builder.append("\"");
                }
                 } catch (IllegalAccessException ex) {
               //TODO  
            } catch (InvocationTargetException ex) {
               //TODO
            } catch (NoSuchMethodException ex) {
               //TODO
            }
        }
      builder.append("}");
      return builder.toString();
    }
}

  评论这张
 
阅读(2027)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018