入参和实体类不一致问题【解决】
问题描述
今天在写一个接口时,按照正常的写法(驼峰命名)写入参时,发现之前同事写好的实体类中的属性值为全大写,导致我的入参不会被ObjectMapper.readValue()解析到。

于是我在该属性上添加了注解fasterxml.jackson.@JsonProperty,终于解析到了我的参数,但是!!!
发现我的返参存在两个同样的属性值,一个是全小写,一个是驼峰命名!!!

问题解决
思来想去,发现该注解可以作用在方法上
@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@JacksonAnnotation
public @interface JsonProperty {
String USE_DEFAULT_NAME = "";
int INDEX_UNKNOWN = -1;
String value() default "";
boolean required() default false;
int index() default -1;
String defaultValue() default "";
Access access() default JsonProperty.Access.AUTO;
public static enum Access {
AUTO,
READ_ONLY,
WRITE_ONLY,
READ_WRITE;
private Access() {
}
}
}
于是乎,我在set属性的方法上添加了该注解,去掉了原在属性上加的注解,理想效果出来了


浙公网安备 33010602011771号