当前位置: 首页 > 科技观察

Fastjson转Json,过滤掉一些不需要的字段最好的方法是什么?

时间:2023-03-16 23:11:34 科技观察

方法一、fastjson的注解fastjson中有一个注解@JSONField(serialize=false),可以在使用fastjson进行序列化时过滤属性字段。具体用法是直接在实体类中需要过滤的属性字段上面加上这个注解即可,如下:@JSONField(serialize=false)privateStringccc;方法二、Java关键字其实Java自带一个忽略序列化的属性关键字transient,如下:privatetransientStringpassword;使用该关键字修饰的字段不参与序列化,所以在使用fastjson转换JSON字符串时可以忽略该字段。但是因为java关键字忽略了所有的序列化,所以也会影响该字段的其他序列化操作。如果会用到其他序列化操作,不需要忽略该字段,推荐方法一。方法三、最灵活的fastjson的属性名称过滤器com.alibaba.fastjson.JSONObjectprivatestaticSimplePropertyPreFilterfilter=newSimplePropertyPreFilter();privatestaticSerializeFilter[]filters=null;static{filter.getExcludes().add("enumValue");filter.getExcludes().add("默认值");filter.getExcludes().add("最小值");filter.getExcludes().add("最大值");filter.getExcludes().add("decimalLength");filters=newSerializeFilter[]{filter};}StringBuilderjsonBuilder=newStringBuilder();for(CustomizeStrategyFieldVOvo:voList){jsonBuilder.append(JSONObject.toJSONString(vo,filters,SerializerFeature.WriteMapNullValue));}