Самое близкое, что я мог получить, столкнувшись с подобной проблемой, это создать класс адаптера.Это решение печатает одно дополнительное свойство, которое может быть проигнорировано, если, например, разрешено некоторое наследование, но я предполагаю, что нет, и использую только объявленные классы в дополнение к адаптеру, например:
@RequiredArgsConstructor
public class PaymentCaptureAdapterClass {
@NonNull
@JsonProperty
private PaymentCapture resource;
@JsonProperty
private String getId() {
return resource.getId();
}
}
используя это с кодом:
ObjectMapper om = new ObjectMapper();
om.enable(SerializationFeature.INDENT_OUTPUT);
PaymentCapture pc = new PaymentCapture();
pc.setId("someId");
pc.setParentPayment("23434");
log.info("\n{}", om.writeValueAsString(new AdapterClass(pc)));
печатает что-то вроде:
{
"resource" : {
"event_id" : "someId", // might be able to be ignored
"parent_payment" : "23434"
},
"id" : "someId"
}