| 属性 | 描述 |
|---|---|
| Access.AUTO | 冗余参数,可以不用写 |
| Access.READ_ONLY | 仅做序列化(后端给前端传值)忽略属性 |
| Access.WRITE_ONLY | 仅做反序列化(前端给后端传值)忽略属性 |
| Access.READ_WRITE | 正反序列化都忽略字段 |
使用这个注解会导致一个问题,就是无法接受前端的请求参数。因为他在序列化(后端给前端传值)和反序列化(前端给后端传值)都会起作用,这就导致发送的请求我们想接受参数但接受不到
解决方案:
更换form表单(data-form)传参可以解决这个问题
使用这个注解可能会失效,原因是Sprintboot默认是通过jackson来转换JSON的,@JSONField(serialize = false)是FastJson的注解,Springboot使用jackson进行转JSON的时候并不会扫描这个注解。
解决方案:
在Springboot启动类中添加如下配置
@Beanpublic HttpMessageConverters fastJsonHttpMessageConverters() {FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);fastConverter.setFastJsonConfig(fastJsonConfig);HttpMessageConverter> converter = fastConverter;return new HttpMessageConverters(converter);}
在Bean里用transient修饰变量
@JSONField(serialize = false)private transient String age;