4
我使用球衣来公开使用jaxb注释类来配置json的外观的服务。如何配置JSON格式使用jersey注解与球衣
我想在每个json元素中包含type指令。我通过提供这样的提供商来做到这一点:
import org.codehaus.jackson.JsonParser.Feature;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ObjectMapper.DefaultTyping;
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class CmsContextResolver implements ContextResolver<ObjectMapper> {
ObjectMapper mapper;
public CmsContextResolver() {
mapper = new ObjectMapper();
// @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include =
// JsonTypeInfo.As.WRAPPER_OBJECT, property = "@type")
mapper.configure(Feature.INTERN_FIELD_NAMES, true);
mapper.enableDefaultTypingAsProperty(DefaultTyping.NON_FINAL, "@type");
}
@Override
public ObjectMapper getContext(Class<?> arg0) {
return mapper;
}
}
而且这个提供商肯定会被接受。
10 May 2011 3:53:18 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Provider classes found:
class com.afrozaar.cms.service.CmsContextResolver
但它没有区别。 json的格式不受影响。
据我可以告诉问题源于球衣不使用杰克逊序列化的事实?或者球衣无视我的杰克逊配置将覆盖...
感谢,正想回答我自己问题,但你救了我麻烦。这就是我所做的:-),配置了我自己的jackson-json提供程序。 – 2011-05-13 07:00:00
我和Jersey2.4和Jackson 2.2.3的OP一样有问题 - 我无法让运行时识别自定义对象映射器...我发现每个解决方案都是使用Spring MVC - 我不是 - - 除了这个。 – 2013-10-26 18:37:37
我一直把我的头撞在墙上,直到找到你的解决方案。谢谢。 – limc 2014-05-17 14:38:41