2010-11-12 12 views
31

Ignore Aşağıdaki json dosyası var:Jackson: Json yapılandırma değerini


{ 
    "segments": {   
      "externalId": 123, 
      "name": "Tomas Zulberti", 
      "shouldInform": true, 
      "id": 4 
    } 
} 

Ama java modeli aşağıdaki gibidir:


public class Segment { 

    private String id; 
    private String name; 
    private boolean shouldInform; 

    // getter and setters here... 
} 

Jackson hiçbir yoktur çünkü o bir istisna yükseltir ayrıştırma zaman "externalId" alanı için getter veya setter. Bir json alanını yok saymak için kullanılabilecek bir dekoratör var mı?

cevap

67

Ek açıklama @JsonIgnoreProperties; kullanılamaz

@JsonIgnoreProperties({"externalId"}) 

ya da bir şey yok saymak: Eğer atlamak istiyorsanız sadece bir değer, böyle bir şey olursa

dinlenme kontrolü için de bunu yapmak için başka yollar vardır
@JsonIgnoreProperties(ignoreUnknown=true) 

FasterXML Jackson wiki.

+0

kullanabilirsiniz. – jackthehipster

2

Ayrıca mapper.enable'ı da kullanabiliriz (DeserializationFeature. FAIL_ON_IGNORED_PROPERTIES); yerine @JsonIgnoreProperties (ignoreUnknown = true)

ancak belirli özellik için biz bağlantılı FasterXML Jackson wiki artık yok mu

@JsonIgnoreProperties({"externalId"}) 
public class Segment { 

    private String id; 
    private String name; 
    private boolean shouldInform; 

    // getter and setters here... 
}