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

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

方法一、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)
);
}
责任编辑:武晓燕 来源: 今日头条
相关推荐

2021-06-28 10:25:47

MySQL数据库重复数据

2021-09-14 13:15:43

MySQL数据库脚本

2011-04-06 16:58:42

路由器ACL

2011-06-08 15:08:38

MySQLWhere优化

2017-11-08 21:45:21

程序员转行人工智能

2013-06-24 10:48:11

JavaJSON

2010-01-05 16:37:41

交换机故障诊断技术

2023-03-13 07:41:34

分页查询数据排序

2010-10-08 15:49:09

Mysql更新字段

2020-04-20 11:09:49

过滤器监听器 Web

2010-09-27 16:26:00

sql语句

2023-11-07 07:50:55

LIMIT子句下推优化

2022-08-15 12:31:32

Vue3TypeScript

2022-01-12 09:31:18

Go 变量方式

2011-01-18 13:50:20

路由跟踪tcptracerou

2021-10-28 05:47:38

PathProber暴力破解安全工具

2022-11-16 07:52:11

ORM链式GoFrame字段

2021-09-03 06:33:24

布隆过滤器高并发

2011-06-20 16:04:29

SEO

2020-03-10 13:13:15

程序员接口参数编程语言
点赞
收藏

51CTO技术栈公众号