dinlenme hizmetiJackson kökünü unwraping ile json ayrıştırmak, ama @JsonRootName
<transaction><trxNumber>1243654</trxNumber><type>INVOICE</type></transaction>
veya JSON yanıt verir belirleme yeteneği olmadan:
{"transaction":{"trxNumber":1243654,"type":"INVOICE"}}
ı kullanırken hiç problem yoktur:
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true)
Ve sonuçta ortaya çıkan sınıf olarak
@JsonRootName("transaction")
public class Transaction {
private String trxNumber;
private String type;
//getters and setters
}
Ancak aslında Transaction sınıfını yukarıdaki gibi olan 3. parti jar'undan kullanmalıyım, , ancak @JsonRootName ("transaction") ek açıklaması yoktur.
yüzden Jackson İşlem sınıfına ayrıştırmak zorlamak için herhangi bir yolu İşlem sınıfına kendisine herhangi bir şeyler eklemeden var mı
Could not read JSON: Root name 'transaction' does not match expected ('Transaction') for type...
ile bitirmek (Ben bir ikili kavanoz bir parçası olarak bu dosyayı almak gibi) ?
Özel PropertyNamingStrategy denedim, ancak alan ve getter/setter isimleriyle değil, sınıf isimleriyle yapılması gerekiyor.
Java7, Jackson 2.0.5.
Herhangi bir öneriniz var mı? Teşekkürler.
Harika! Cevabınız için çok teşekkür ederim. Son olarak TransactionWrapper nesnesine gitmeye ve İşlem alanında @JsonRootName ("transaction") koymaya geçtik, ama öneriniz çok ilginç görünüyor! –
'TransactionWrapper 'iyi geliyor. Bunu da düşündüm. Yine de gelecekte başka sorunları çözmek için mixin özelliğini yeniden kullanabilirsiniz. –