Я хотел бы исключить все свойства со значениями, меньшими нуля. Есть ли у Jackson какие-то готовые к использованию решения, или я должен создать CustomSerializerFactory и BeanPropertyWriter?Джексон, как игнорировать некоторые значения
0
A
ответ
0
Вы можете сделать это, используя фильтр - это немного подробный, но он выполняет эту работу. Во-первых - нужно указать фильтр на вашей организации:
@JsonFilter("myFilter")
public class MyDtoWithFilter { ...}
Затем вам необходимо указать свой собственный фильтр, который будет смотреть на значения:
PropertyFilter theFilter = new SimpleBeanPropertyFilter() {
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer) throws Exception {
if (include(writer)) {
if (writer.getName().equals("intValue")) {
int intValue = ((MyDtoWithFilter) pojo).getIntValue();
if (intValue < 0) {
writer.serializeAsField(pojo, jgen, provider);
}
} else {
writer.serializeAsField(pojo, jgen, provider);
}
} else if (!jgen.canOmitFields()) { // since 2.3
writer.serializeAsOmittedField(pojo, jgen, provider);
}
}
@Override
protected boolean include(BeanPropertyWriter writer) {
return true;
}
@Override
protected boolean include(PropertyWriter writer) {
return true;
}
};
Это делается для поля intValue
, но вы можете сделать то же самое для всех своих полей, которые должны быть положительными аналогичным образом.
Наконец, вы не может маршал объект и тест, что он работает:
FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter", theFilter);
MyDtoWithFilter dtoObject = new MyDtoWithFilter();
dtoObject.setIntValue(12);
ObjectMapper mapper = new ObjectMapper();
String dtoAsString = mapper.writer(filters).writeValueAsString(dtoObject);
Надеется, что это помогает.
Смежные вопросы
- 1. джексон: десериализации JSON в Java карте, игнорировать некоторые элементы
- 2. Как игнорировать некоторые значения в столбце data.frame
- 3. Джексон игнорировать поля при написании
- 4. Джексон: игнорировать значение конфигурации JSon
- 5. JSON stringify игнорировать некоторые значения в массиве
- 6. Json4s (Родной/Джексон) Игнорировать все неизвестные поля
- 7. Java: Как игнорировать некоторые SQLException?
- 8. Как пурпуры игнорировать некоторые ошибки?
- 9. Как игнорировать некоторые столкновения Tkinter?
- 10. джексон: игнорировать добытчик, но не с @JsonView
- 11. Как элегантно игнорировать некоторые возвращаемые значения функции Python?
- 12. Как элегантно игнорировать некоторые возвращаемые значения функции MATLAB?
- 13. Subversion: игнорировать некоторые файлы
- 14. как реализовать `Джексон AnnotationIntrospector`?
- 15. Джексон - Передайте значения для JsonDeserializer
- 16. Джексон не игнорируя пустые значения
- 17. игнорировать некоторые значения в insert в select from sql stament
- 18. для-каждой группы и сортировок (но игнорировать некоторые значения)
- 19. Игнорировать некоторые модули в autodoc
- 20. Игнорировать некоторые каталоги в Git
- 21. Игнорировать некоторые сценарии для JSDOM
- 22. заставляя игнорировать некоторые параметры URL
- 23. Игнорировать некоторые ошибки из bindFromRequest
- 24. Как игнорировать некоторые ссылки на моем сайте?
- 25. как игнорировать некоторые преобразования в rxjava
- 26. Ionic livereload: как игнорировать некоторые файлы?
- 27. Как игнорировать некоторые свойства в Dapper?
- 28. Как настроить Teamcity, чтобы игнорировать некоторые тесты
- 29. Как игнорировать некоторые атрибуты @Embeddable внутри @Entity?
- 30. Java XStream - Как игнорировать некоторые элементы