Я работаю над веб-проектом, в котором используется один статический ObjectMapper, который настраивается через файл XML и должен действовать во всем проекте. Однако мне нужно реализовать API для отправки ответа с нулевым свойством, которое не игнорируется независимо от настройки. Мой босс сказал мне, что он не хочет, чтобы создавался еще один ObjectMapper, а создание моего собственного модуля записи JSON считается излишним, поэтому это также запрещено. Из-за чего я застрял здесь. Я попробовал это.
Map<String, Object>resultMap = getResult();
try {
mapper.setSerializationInclusion(Include.ALWAYS);
response = mapper.writeValueAsString(resultMap);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
} finally {
if (ServiceConfig.isWriteNull()) {
mapper.setSerializationInclusion(Include.ALWAYS);
} else {
mapper.setSerializationInclusion(Include.NON_NULL);
}
}
Чтобы временно переключать настройки, работает. но, учитывая, что преобразователь используется асинхронно, менять глобальную конфигурацию — определенно плохая идея. Я также думал о том, чтобы заблокировать маппер до обратного переключения конфигурации, но, поскольку маппер статичен, это может быть еще одной плохой идеей. Я хотел бы иметь какой-нибудь аккуратный способ, например, аннотацию или параметр, волшебным образом влияющий на одно выполнение. Интересно, возможно ли это?
ObjectMapper
? - person sp00m   schedule 16.11.2020