首页>国内 > 正文

Fastjson 转Json ,过滤掉部分不要的字段有什么好方法?

2022-12-27 09:14:19来源:今日头条


(资料图片仅供参考)

方法一、fastjson的注解

fastjson中有个注解@JSONField(serialize = false)可以在使用fastjson进行序列化时来过滤属性字段,具体用法是直接在实体类需要过滤的属性字段上方添加该注解即可,如下:

@JSONField(serialize = false)private String ccc;
方法二、Java关键字

其实Java自带的有一个属性关键字transient是忽略序列化的,如下:

private transient String password;

使用该关键字进行修饰的字段是不参与序列化的,所以在使用fastjson转JSON字符串时就可以忽略掉该字段。

但是因为是Java关键字是忽略所有的序列化的,所以也会影响该字段其他的序列化操作,如果会用到其他的序列化操作并且不需要忽略该字段的话,建议使用方法一。

方法三、最灵活 fastjson的属性名过滤器

com.alibaba.fastjson.JSONObject
private static SimplePropertyPreFilter filter = new SimplePropertyPreFilter();private static SerializeFilter[] filters = null;static {    filter.getExcludes().add("enumValue");    filter.getExcludes().add("defaultValue");    filter.getExcludes().add("minValue");    filter.getExcludes().add("maxValue");    filter.getExcludes().add("decimalLength");    filters = new SerializeFilter[]{filter};}
StringBuilder jsonBuilder = new StringBuilder();for(CustomizeStrategyFieldVO vo:voList){    jsonBuilder.append(      JSONObject.toJSONString(vo, filters, SerializerFeature.WriteMapNullValue)    );}

关键词: 可以忽略 使用方法

相关新闻

Copyright 2015-2020   三好网  版权所有 联系邮箱:435 22 640@qq.com  备案号: 京ICP备2022022245号-21