Json反序列化可以与org.codehaus.jackson一起正常工作,但与com.fasterxml.jackson一起引发错误

问题描述

我有一个POJO

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Set;

公共类MyPojo {

@JsonProperty("name")
private Set<String> names;

@JsonProperty("country")
private String country;

public Set<String> getNames() {
    return names;
}

public void setNames(Set<String> names) {
    this.names = names;
}

public void setCountry(String country) {
    this.country = country;
}

public String getCountry() {
    return country;
}

}

从json反序列化为Java对象时,出现以下错误

org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53)
org.codehaus.jackson.map.deser.StdDeserializationContext.unkNownFieldException(StdDeserializationContext.java:267)
org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnkNownProperty(StdDeserializer.java:649)
org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnkNownProperty(StdDeserializer.java:635)
org.codehaus.jackson.map.deser.BeanDeserializer.handleUnkNownProperty(BeanDeserializer.java:1355)
org.codehaus.jackson.map.deser.BeanDeserializer.deserializefromObject(BeanDeserializer.java:717)
org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2695)
org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)
org.codehaus.jackson.jaxrs.JacksonjsonProvider.readFrom(JacksonjsonProvider.java:419)
com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy.readFrom(JacksonProviderProxy.java:139)
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)
com.sun.jersey.server.impl.model.method.dispatch.EntityParamdispatchProvider$EntityInjectable.getValue(EntityParamdispatchProvider.java:123)
com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethoddispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethoddispatchProvider.java:153)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethoddispatchProvider$ResponSEOutInvoker._dispatch(AbstractResourceMethoddispatchProvider.java:203)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethoddispatcher.dispatch(ResourceJavaMethoddispatcher.java:75)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
com.sun.jersey.server.impl.uri.rules.RightHandpathRule.accept(RightHandpathRule.java:147)
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
com.sun.jersey.server.impl.uri.rules.RightHandpathRule.accept(RightHandpathRule.java:147)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1483)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1414)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.flipkart.fsd.filter.CustomFilter.doFilter(CustomFilter.java:72)
com.flipkart.fsd.apis.filter.StatsFilter.doFilter(StatsFilter.java:51)

相反,我尝试导入org.codehaus.jackson.annotate.JsonProperty,现在它可以正常工作且没有错误。一种版本的debian计算机上会发生这种现象。另一台机器,codehaus和fasterxml都可以正常工作!

我无法找到问题的根本原因。请帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)