Включение нулевых элементов в вывод JSON API-интерфейса RESTful для Jersey с JAXB
У меня есть класс, который я хотел бы представить через API-интерфейс RESTful в Джерси. Это выглядит примерно так:
<code>@XmlRootElement public class Data { public String firstName; public String lastName; } </code>
Моя проблема заключается в том, что эти поля могут быть нулевыми, и в этом случае поле опускается из вывода JSON. Я хотел бы, чтобы все поля присутствовали независимо от их значения. Например, если lastName равно нулю, вывод JSON будет:
<code>{ "firstName" : "Oleksi" } </code>
вместо того, что я хочу:
<code>{ "firstName" : "Oleksi", "lastName" : null } </code>
У меня есть JAXBContextResolver (реализация ContextResolver), который выглядит следующим образом:
<code>@Provider public class JAXBContextResolver implements ContextResolver<JAXBContext> { // internal state private final JAXBContext context; private final Set<Class> types; private final Class[] cTypes = { Data.class }; public JAXBContextResolver() throws Exception { types = new HashSet(Arrays.asList(cTypes)); context = new JSONJAXBContext(JSONConfiguration.natural().humanReadableFormatting(true).build(), cTypes); } @Override public JAXBContext getContext(Class<?> objectType) { return (types.contains(objectType)) ? context : null; } } </code>
Я пытался выяснить, как получить желаемый результат некоторое время, но мне не повезло. Я открыт для того, чтобы попробовать другие ContextResolvers / Serializer, но мне не удалось найти тот, который работает, поэтому примеры кода были бы хорошими.