Spring Jackson将驼峰映射到驼峰或禁用转换

时间:2020-04-17 21:20:33

标签: java spring spring-boot jackson

我有一个Java Spring Boot 2服务,可以对多个服务进行REST调用。除返回骆驼箱的一个外,所有都返回snake_case。如果我将应用程序配置为期望snake_case(属性文件:spring.jackson.property-naming-strategy=SNAKE_CASE),则每个类都可以正确映射,但可以接收camelCase JSON的类除外。

我想注释课程:

@JsonNaming(PropertyNamingStrategy.CamelCaseStrategy.class)

但是没有这样的策略。我尝试了UpperCamelCaseStrategyLowerCase Strategy,但都失败了。

采用其他方法-在属性文件中注释掉全局设置,将@JsonNaming SnakeCaseStrategy添加到除问题以外的每个类中。但这似乎很尴尬且效率低下。

如果我手动注释类文件中的所有68个属性,它也可以工作,但是效率更低。

如果我可以禁用该类的映射,则可能会解决该问题,但我还没有找到一种方法。

示例输入摘录:

{
    "site": "501",
    "referencePath": "control_room_temp/temp",
    "alarmType": "OUT OF RANGE",
...

课堂摘录:

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonNaming(PropertyNamingStrategy.UpperCamelCaseStrategy.class)
public class RawAlarmData {
    private String site; // single word works
    @JsonProperty("referencePath")
    private String referencePath; // manual mapping works
    private String alarmType;  // fails in all strategies

0 个答案:

没有答案