入参和实体类不一致问题【解决】
问题描述
今天在写一个接口时,按照正常的写法(驼峰命名)写入参时,发现之前同事写好的实体类中的属性值为全大写,导致我的入参不会被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属性的方法上添加了该注解,去掉了原在属性上加的注解,理想效果出来了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库