In nessun modo io sono un mago Jackon/JSON, che è probabilmente evidente dalla seguente problema che sto funzionando in:Nesting più livelli di Jackson WRAPPER_OBJECTs
Ho 2 possibili strutture di dati sto ricevendo. Il primo si chiama amountTransaction:
{
"amountTransaction": {
"clientCorrelator":"54321",
"endUserId":"tel:+16309700001"
}
}
che è rappresentata dalla seguente oggetto Java:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
@JsonTypeName(value = "amountTransaction")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AmountTransaction {
private String clientCorrelator;
private String endUserId;
...
}
Tuttavia l'oggetto amountTransaction appare anche come elemento secondario dell'oggetto paymentTransactionNotification:
{
"paymentTransactionNotification": {
"amountTransaction": {
"clientCorrelator": "54321",
"endUserId": "tel:+16309700001"
}
}
}
.. che pensavo sarebbe stato rappresentato da:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
@JsonTypeName(value = "paymentTransactionNotification")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PaymentTransactionNotification {
private AmountTransaction amountTransaction;
...
}
L'analisi del JSON con l'oggetto amountTransaction funziona correttamente. È un esempio piuttosto diretto di WRAPPER_OBJECT.
Tuttavia quando si cerca di analizzare il JSON per la paymentTransactionNotification, sto diventando un'eccezione che indica che non può affrontare correttamente con l'amountTransaction come elemento del paymentTransactionNotification:
com.fasterxml.jackson.databind.JsonMappingException: Could not resolve type id 'clientCorrelator' into a subtype of [simple type, class com.sf.oneapi.pojos.AmountTransaction]
Ogni pensiero su come mi può annotarlo correttamente in modo che il mio codice possa gestire correttamente sia gli oggetti di Transaction sia quelli stand-alone incapsulati?
Penso che dovresti mostrare come pensi che questo dovrebbe mappare su un POJO - Non sono abbastanza chiaro su come funzionerebbe, perché le proprietà di un POJO hanno nomi, e il tuo JSON sembra che manchi quella parte di informazione. – StaxMan