我有以下代码来更改杰克逊的房产。我正在使用XMLRootElements注释类,并让Jersey使用jackson将其转换为JSON。
类是JAXB注释的。
@Provider
@Produces("application/json")
public class JacksonObjectMapper implements ContextResolver<ObjectMapper> {
private ObjectMapper objectMapper;
public JacksonObjectMapper() throws Exception {
objectMapper.configure( DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
}
@Override
public ObjectMapper getContext(Class<?> type) {
return this.objectMapper;
}
}
上面的配置,如果我在杰克逊外面使用杰克逊(即:使用他自己的功能),可以正常工作,但如果我在泽西应用程序中使用它,配置选项将被忽略。
有没有办法指示Jersey使用我的类从XML序列化/反序列化为JSON?
答案 0 :(得分:2)
将此类添加到javax.ws.rs.core.Application的类列表中:
application.addClass(JacksonObjectMapper.class)