2016-03-30 23 views
1

eksik bir dize den Nesne serisini çalışıyorum ne zaman ve bu Dize belli alanları içermiyor ya da benim Nesne olmayan alana sahiptir değil deserializer Jackson serializer ile tamamen tamam ve sadece unkown özelliklerini göz ardı ederek null/Optional.empty() alanlarına sahip Object'imi yaratır. Okuyucuyu FAIL_ON_UNKNOWN_PROPERTIES ile ayarlamaya çalıştım ancak başarıya ulaşamadı. Oldukça basit bir Jackson konfigürasyonuna sahibim, Java 8 ve java.time desteği ekledim.Jackson, bilinmeyen özellikleri üzerinde başarısız veya değerleri

Düzenleme:

public final ObjectReader reader; 
public final ObjectWriter writer; 

private JsonMapperTestInstance() { 
    ObjectMapper mapper = new JacksonConfiguration().objectMapper(); 
    reader = mapper.reader(); 
    writer = mapper.writer().withFeatures(SerializationFeature.INDENT_OUTPUT); 
} 
public <T> T deserialize(Class<T> actual, String serialized) throws IOException { 
    return reader.forType(actual).readValue(serialized); 
} 

JacksonConfiguration:

@Primary 
@Bean 
public ObjectMapper objectMapper() { 
    ObjectMapper mapper = new ObjectMapper(); 
    registerModules(mapper); 
    mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); 
    return mapper; 
} 
@Bean 
public JavaTimeModule javaTimeModule() { 
    return new JavaTimeModule(); 
} 
@Bean 
public Jdk8Module jdk8Module() { 
    return new Jdk8Module().configureAbsentsAsNulls(true); 
} 
private void registerModules(ObjectMapper mapper) { 
    mapper.registerModule(jdk8Module()); 
    mapper.registerModule(javaTimeModule()); 
} 
@Primary 
@Bean 
public ObjectWriter writer(ObjectMapper mapper) { 
    return mapper.writer(); 
} 
@Primary 
@Bean 
public ObjectReader reader(ObjectMapper mapper) { 
    return mapper.reader(); 
} 
+0

Sınıfınızda @JsonIgnoreProperties (ignoreUnknown = false) kullanarak herhangi bir fark var mı? – JustOneMoreQuestion

+2

Lütfen kod yazınız –

cevap

0

ben açıklama @JasonUnwrapped bu davranışı neden olduğunu belirledik. Onsuz Jackson, daha önce sessizce görmezden gelen "very_wrong_field" mülküne expection atar.

İlgili konular