我有一个类,我想通过Jersey RESTful API公开.它看起来类似于:
@XmlRootElement
public class Data {
public String firstName;
public String lastName;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这些字段可能为null,在这种情况下,字段从JSON输出中省略.我希望所有领域都存在,无论它们的价值如何.例如,如果lastName为null,则JSON输出将为:
{
"firstName" : "Oleksi"
}
Run Code Online (Sandbox Code Playgroud)
而不是我想要的:
{
"firstName" : "Oleksi",
"lastName" : null
}
Run Code Online (Sandbox Code Playgroud)
我有一个JAXBContextResolver(ContextResolver的实现),如下所示:
@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)) …Run Code Online (Sandbox Code Playgroud)