Код: Выделить всё
public class Root {
public List collect;
}
public class Collect {
public Flag flag;
}
public class Flag {
public String name;
}
Код: Выделить всё
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class MainClass {
private static final ObjectMapper om = new ObjectMapper();
public static void main(String[] args) throws IOException {
om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
om.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, false);
om.configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, false);
om.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE, false);
om.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
//language=JSON
String str = "{\"collect\": [{\"flag\": {\"name\": \"ali\"}},{\"item\": {\"value\": \"test\"}}]}";
Root root = om.readValue(str, Root.class);
String output = om.writeValueAsString(root);
System.out.println(output);
}
}
у меня есть неизвестный ключ в json с именем item, и Джексон не игнорирует неизвестные свойства.
это результат сериализации:
Код: Выделить всё
{"collect":[{"flag":{"name":"ali"}},{}]}
Я хочу сделать это глобально, без использования аннотаций.
Подробнее здесь: https://stackoverflow.com/questions/786 ... n-property
Мобильная версия