去掉JSON中值为null的

在做接口开发常常会用到JSON数据格式,但是在有些时间类型属性为null时转换会报错,解决方法我这里是把为null的去掉。

//正常用jsonObject序列化后得到字符串  
//{id:18, name:"张山"}  
// 现在如果name=null的话 我不想让它系列化 我想返回这样的结果{id:18},

异常如下:

处理方法:

很简单net.sf.json在格式化中可以传递一个JsonConfig,实现setJsonPropertyFilter方法然后修改apply方法即可。

JsonConfig config = new JsonConfig();  
config.setJsonPropertyFilter(new PropertyFilter()  {  
    @Override  
    public boolean apply(Object source, String name, Object value){  
        return value.equals("null");  
    }  
});  
JSONArray jsonArray = JSONArray.fromObject(object, config);  
System.out.println(jsonArray);  

JDK1.8中有更风骚的写法:

JsonConfig config = new JsonConfig();  
config.setJsonPropertyFilter((source, name, value) -> value.equals("null"));
JSONArray jsonArray = JSONArray.fromObject(object, config);  
System.out.println(jsonArray);  

 

转载于:https://my.oschina.net/jgy/blog/750705

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值