Я довольно новичок в использовании Джексона и пытаюсь следовать шаблонам моей команды для десериализации нашего JSON.Сейчас я сталкиваюсь с проблемой, когда имя поля не соответствует свойству JSON.
Рабочий пример:
@JsonDeserialize(builder = ProfilePrimaryData.Builder.class)
@Value
@ParametersAreNonnullByDefault
@Builder(builderClassName = "Builder")
private static class ProfilePrimaryData {
private final Boolean hasProfile;
@JsonPOJOBuilder(withPrefix = "")
public static class Builder {
}
}
Если свойство JSON имеет hasProfile, оно работает нормально, но если оно имеет has_profile (именно это пишет наш клиент), оно не работает, и яполучить ошибку: Unrecognized field "has_profile" (class com.mypackagehere.something.$ProfilePrimaryData$Builder), not marked as ignorable (one known property: "hasProfile"])
.Я попытался добавить аннотацию JsonProperty в hasProfile, как это, но он все еще не работает:
@JsonDeserialize(builder = ProfilePrimaryData.Builder.class)
@Value
@ParametersAreNonnullByDefault
@Builder(builderClassName = "Builder")
private static class ProfilePrimaryData {
@JsonProperty("has_profile")
private final Boolean hasProfile;
@JsonPOJOBuilder(withPrefix = "")
public static class Builder {
}
}
Я неправильно понимаю, как это должно работать?