我在最新的Android项目中使用Jackson 2.2.3。 我把罐子(核心,数据绑定,注释)作为罐子包含在我的android libs文件夹中。
但是在阅读/解析json时我得到了这个错误。从对象写json。
我称之为:
objectMapper.readValue(inputStream,SubscriptionWrapper.class);
com.fasterxml.jackson.databind.JsonMappingException:冲突 属性的定位器定义"壁纸": android.content.Context#setWallpaper(1 params)vs android.content.Context#setWallpaper(1 params)at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:272) com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:272) com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:247) com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:146) 在 com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:305) 在 com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:634) 在 com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:438) 在 com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:298) ... 在 com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2884) 在 com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
我的班级看起来像这样
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(Include.NON_NULL)
public class SubscriptionWrapper {
@JsonProperty("device")
private Device device;
@JsonProperty("subscriptions")
private List<Subscription> subscriptions;
public SubscriptionWrapper() {
}
public SubscriptionWrapper(Device device, List<Subscription> subscriptions) {
this.device = device;
this.subscriptions = subscriptions;
}
public Device getDevice() {
return device;
}
public void setDevice(Device device) {
this.device = device;
}
public List<Subscription> getSubscriptions() {
return subscriptions;
}
public void setSubscriptions(List<Subscription> subscriptions) {
this.subscriptions = subscriptions;
}
}
知道可能出现什么问题吗?我在其他项目中使用过jackson而没有任何问题。
答案 0 :(得分:2)
该死的,我找到了解决办法:
我的Device类有一个方法
public void setStatistics(Context c);
将调用来完成有关用户设备的统计信息。
该方法是从jackson调用的,即使在应该被解析的json中也不包含&#34;统计信息&#34;元件。
用@JsonIgnore
注释方法解决了这个问题。
@JsonIgnore
public void setStatistics(Context c)
所以我必须注释每一个方法或配置jackson使用字段而不是默认的pasing方法。