码迷,mamicode.com
首页 > 编程语言 > 详细

格式化java对象为json

时间:2014-07-26 00:42:06      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:blog   java   os   数据   io   for   re   c   

在做java开发的时候,经常要格式化java对象,闲来无事就写了一个,

如果传递的是单个对象生成数据格式  {"id":"1","name":"名字"}

传递的是list对象生成数据格式  [{"id":"1","name":"名字"},{"id":"2","name":"名字2"}]

暂时还不支持对象递归生成数据 

public class JsonUtil {

    public static String toJson(Object obj){
        StringBuffer json = new StringBuffer();
        
        if(obj instanceof Collection){
            json.append("[");
            Collection objColl = (Collection)obj;
            Iterator iterator = objColl.iterator();
            while(iterator.hasNext()){
                Object subObj = iterator.next();
                json.append(toJson(subObj)).append(",");
            }
            if(json.charAt(json.length() - 1) == ‘,‘){
                json.deleteCharAt(json.length() - 1);
            }
            json.append("]");
        }else{
            json.append("{");
            Class objClass = obj.getClass();
            Field[] fields = objClass.getDeclaredFields();
            for(Field field : fields){
                field.setAccessible(true);
                Object fieldObj = null;
                try {
                    fieldObj = field.get(obj);
                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                if(fieldObj != null){
                    if(fieldObj instanceof Collection){
                        continue;
                    }
                    json.append("\"").append(field.getName()).append("\":\"").append(fieldObj).append("\"").append(",");
                }else{
                    json.append("\"").append(field.getName()).append("\":null").append(",");
                }
            }
            if(json.charAt(json.length() - 1) == ‘,‘){
                json.deleteCharAt(json.length() - 1);
            }
            json.append("}");
        }
        return json.toString();
    } 
}

 因为才疏学浅,所以还不知道有没有什么好的json开源项目,有的话可以推荐给我,谢谢各位了

格式化java对象为json,布布扣,bubuko.com

格式化java对象为json

标签:blog   java   os   数据   io   for   re   c   

原文地址:http://www.cnblogs.com/xiaolai/p/3868526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!