通过fastjson将一个对象序列化为json,同时加入指定的序列化逻辑

主函数:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.google.common.base.Preconditions;

public class xiaomi {
    public static void main(String[] args) {
        A a = new A();
        String json =ok.object2Json(a);
        System.out.println(json);
    }
}

实体类:

class A{
    int a;
    int b=1;
    String des ="wuhan";
    String dep ="xiantao";
    public String getDes() {
        return des;
    }
    public void setDes(String des) {
        this.des = des;
    }
    public String getDep() {
        return dep;
    }
    public void setDep(String dep) {
        this.dep = dep;
    }
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public int getB() {
        return b;
    }
    public void setB(int b) {
        this.b = b;
    }
}
实体类

序列化类:

class ok{
    public static String object2Json(Object o){
        Preconditions.checkNotNull(o);
        String json = JSON.toJSONString(o, new ValueFilter() {
            @Override
            public Object process(Object object, String name, Object value) {
                if (name == "a" && value.equals(0))//当有属性a的至等于0时,json的值赋为null
                    return null;
                else if (name == "d" && value == null)//当有属性d的至等于null时,json的值赋为"",此处因为实体类A里没有名字为d的属性,故实际不会被执行
                    return "";
                return value;
            }
        });
        return json;
    }
}

运行结果:

{"b":1,"dep":"xiantao","des":"wuhan"}

Process finished with exit code 0

 

总结:类a的属性a,因为值等于零,最后json对应的值被判为空,故最后不加入序列化。

转载于:https://www.cnblogs.com/kincolle/p/7246365.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值