zoukankan      html  css  js  c++  java
  • 格式化java对象为json

    在做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开源项目,有的话可以推荐给我,谢谢各位了

  • 相关阅读:
    谈谈焦虑
    Bridge
    Abstract Factory
    开篇辞
    缓存穿透和缓存雪崩
    缓存与数据库的一致性思考
    GDB
    代码格式化
    CSMA/CA协议
    18年秋招(19届)复习指导+面经总结,手把手教你进大厂——阿里、网易、京东、多益等
  • 原文地址:https://www.cnblogs.com/xiaolai/p/3868526.html
Copyright © 2011-2022 走看看