Ich habe die folgende einfache Klasse:JsonIgnoreProperties nicht funktioniert
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@JsonIgnoreProperties({ "thirdField" })
public class Message {
private TypeA type;
private String producer;
//Getters and Setters
}
in meiner Testklasse
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Test {
public void testMethd() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(MapperFeature.USE_ANNOTATIONS, true);
Class<T> instanceType = Message.class;
String msgBody = "{\"producer\": \"clientApp\", \"type\": \"aType\", \"thirdField\": []}";
objectMapper.readValue(msgBody, instanceType);
}
}
Alles, was ich bin versucht, das oben json String in Nachrichtenklasse konvertieren und ignoriert die "Drittes Feld". Aber ich bekomme immer
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "thirdField" (class Message), not marked as ignorable (2 known properties: , "type", "producer"])
Guter Fang. Ich habe es geändert, um com.fasterxml.jackson.annotation.JsonIgnoreProperties zu importieren; aber immer noch die gleiche Ausnahme – kk1957
@ kk1957 Ich reproduziert Ihren Fall mit dem einzigen Unterschied, dass ich importiert JsonIgnoreProperties von com.fasterxml.jackson.annotation und es funktionierte - keine Ausnahmen, Nachricht Objekt wurde deserialized corctly. Versuchen Sie, https://github.com/LukaszWiktor/json-ignore-properties-test auszuchecken und Test.main() auszuführen. –
Ja, es sieht so aus, als gäbe es andere Dinge in meinem Setup. Danke für die Hilfe. – kk1957