我使用Jersey + Jackson + Guice作为我的webapp。现在我想实现一个简单的REST调用我的客户在那里我收到服务器上的任意JSON数据,但每次我得到以下异常:Jersey + Jackson +任意json
org.codehaus.jackson.map.exc.UnrecognizedPropertyException:无法识别字段“validTo”(Class org.codehaus.jettison.json.JSONObject),未标记为可忽略|在[Source:[email protected];行:1,柱:25](通过参考链:org.codehaus.jettison.json.JSONObject [ “validTo”])
我的方法签名如下所示:
@Override
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void post(JSONObject json) throws JSONException {
}
我Guice配置:
return Guice.createInjector(new TTShiroModule(this.servletContext), ShiroWebModule.guiceFilterModule(),
new ServiceModule(), new JerseyServletModule() {
@Override
protected void configureServlets() {
bind(GuiceContainer.class);
bind(MessageBodyReader.class).to(JacksonJsonProvider.class);
bind(MessageBodyWriter.class).to(JacksonJsonProvider.class);
serve("/rest/*").with(GuiceContainer.class, params);
}
@Provides
@Singleton
ObjectMapper objectMapper() {
final ObjectMapper mapper = new ObjectMapper();
return mapper;
}
@Provides
@Singleton
JacksonJsonProvider jacksonJsonProvider(ObjectMapper mapper) {
return new JacksonJsonProvider(mapper);
}
});
我搜索了这个异常很长一段时间,但无法找到任何帮助。我也尝试了不同的方法,但无法解决这个问题。
任何人都可以帮到我吗?
如果您需要更多信息,请让我知道!
此致敬意。
你见过这个http://stackoverflow.com/questions/4486787/jackson -with-JSON-无法识别,现场没有标记 - 如忽视的? – Algorithmist
谢谢你的回复。我已经看到了这个问题,但它并没有解决我的问题。我不喜欢为我在服务器上接收到的JSON编写“包装类”,而是使用一些通用数据类型(如JSONObject)来接收不依赖任何映射的任意JSON对象。 – maxseam