格式化java对象为json

本文分享了一个简单的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开源项目,有的话可以推荐给我,谢谢各位了

转载于:https://www.cnblogs.com/xiaolai/p/3868526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值