Incluyendo elementos nulos en la salida JSON de Jersey RESTful API con JAXB

Tengo una clase que me gustaría exponer a través de una API RESTful de Jersey. Parece similar a esto:

<code>@XmlRootElement
public class Data {
    public String firstName;
    public String lastName;
}
</code>

Mi problema es que estos campos pueden ser nulos, en cuyo caso el campo se omite en la salida JSON. Me gustaría que todos los campos estén presentes independientemente de su valor. Por ejemplo, si lastName es nulo, la salida JSON será:

<code>{
   "firstName" : "Oleksi"
}
</code>

en lugar de lo que quiero

<code>{
   "firstName" : "Oleksi",
   "lastName" : null
}
</code>

Tengo un JAXBContextResolver (una implementación de ContextResolver) que tiene este aspecto:

<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>

He estado tratando de averiguar cómo obtener esa salida deseada por un tiempo, pero no he tenido suerte. Estoy abierto a probar otros ContextResolvers / Serializers, pero no he podido encontrar uno que funcione, por lo que los ejemplos de código serían buenos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta