Java 杰克逊-唐';不要将@JsonProperty与@JsonPOJOBuilder或@JsonCreator一起使用
先决条件:Java 杰克逊-唐';不要将@JsonProperty与@JsonPOJOBuilder或@JsonCreator一起使用,java,spring-boot,jackson,Java,Spring Boot,Jackson,先决条件: Java/Spring启动 PropertyNamingStrategy.UpperCamelCaseStrategy已设置 DTO类字段是驼峰式的 Json字段是大写的 DTO/Json字段名是对齐的 保持DTO类不变,避免对字段使用setter 要求: 在DTO类中不使用@JsonProperty进行反序列化(隐式) 尝试将嵌套生成器类与@JsonPOJOBuilder或构造函数一起使用,并用@JsonCreator注释,但是: @JsonPOJOBuilder在set
- Java/Spring启动
已设置PropertyNamingStrategy.UpperCamelCaseStrategy
- DTO类字段是驼峰式的
- Json字段是大写的
- DTO/Json字段名是对齐的
- 保持DTO类不变,避免对字段使用setter
- 在DTO类中不使用
进行反序列化(隐式)@JsonProperty
@JsonPOJOBuilder
或构造函数一起使用,并用@JsonCreator
注释,但是:
在@JsonPOJOBuilder
方法上没有setField()
的带注释的生成器类-@jsonproperty
方法在 反序列化setField()
- 带有
注释的构造函数-明确要求参数上有@JsonCreator
@JsonProperty
@JsonCreator
或@JsonProperty
关于命名策略,您可以轻松地将其设置为,尽管我还没有测试它,但应该使用无注释的构造函数。当使用@JsonCreator用例时 我在下面的例子中使用了snake case。 @JsonCreator
公共ApiResponseBuilder(@JsonProperty(“status_code”)int statusCode,@JsonProperty(“status_message”)String statusMessage){我只想知道这是否可行,也就是说接受不可能的答案。