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

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