入参和实体类不一致问题【解决】

问题描述

今天在写一个接口时,按照正常的写法(驼峰命名)写入参时,发现之前同事写好的实体类中的属性值为全大写,导致我的入参不会被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属性的方法上添加了该注解,去掉了原在属性上加的注解,理想效果出来了

posted @   DAawson  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示