首页 > 代码库 > 通过fastjson将一个对象序列化为json,同时加入指定的序列化逻辑
通过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 =http://www.mamicode.com/= 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对应的值被判为空,故最后不加入序列化。
通过fastjson将一个对象序列化为json,同时加入指定的序列化逻辑
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。