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