我有一个Java Spring Boot 2服务,可以对多个服务进行REST调用。除返回骆驼箱的一个外,所有都返回snake_case。如果我将应用程序配置为期望snake_case(属性文件:spring.jackson.property-naming-strategy=SNAKE_CASE
),则每个类都可以正确映射,但可以接收camelCase JSON的类除外。
我想注释课程:
@JsonNaming(PropertyNamingStrategy.CamelCaseStrategy.class)
但是没有这样的策略。我尝试了UpperCamelCaseStrategy
和LowerCase 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