使用Jackson反序列化此Json对象?

使用Jackson反序列化此Json对象?,json,jackson,jackson-databind,Json,Jackson,Jackson Databind,我一直在尝试反序列化从以下位置接收的数据: { 结果:成功,, 时间戳:1521038012878, 数据:{ GB:14, DE:2, 美国:2 }, 是的, 高级:错误, 下载总数:{ GB:14, DE:2, 美国:2 } } 以下是POJO类: 公共类BintrayDownloadCounts{ 私有列表totalDownloads=新的ArrayList; @JsonPropertytotalDownloads 公共列表GetTotalDownload{ 返回总下载量; } publi

我一直在尝试反序列化从以下位置接收的数据:

{ 结果:成功,, 时间戳:1521038012878, 数据:{ GB:14, DE:2, 美国:2 }, 是的, 高级:错误, 下载总数:{ GB:14, DE:2, 美国:2 } } 以下是POJO类:

公共类BintrayDownloadCounts{ 私有列表totalDownloads=新的ArrayList; @JsonPropertytotalDownloads 公共列表GetTotalDownload{ 返回总下载量; } public void setTotalDownloads列表totalDownloads{ this.totalDownloads=totalDownloads; } } 当我尝试使用以下命令反序列化时:

downloadCounts=mapper.readValuejson,BintrayDownloadCounts.class; 我得到这个错误:

com.fasterxml.jackson.databind.JsonMappingException:无法反序列化START\u对象令牌之外的java.lang.Integer实例 我已经看到了许多包含此错误的问题,但我无法为这个特定用例找到解决方案。可能需要注意的是,totalDownloads对象是动态的,即其内容不是常量。

totalDownloads属性不是数组,因此无法映射到列表。改为使用映射,并确保您告诉Jackson忽略未映射的属性以避免映射错误:

@JsonIgnorePropertiesignoreUnknown=true 公共类BintrayDownloadCounts{ @JsonPropertytotalDownloads 私人地图下载; 公共地图GetTotalDownload{ 返回总下载量; } public void setTotalDownloads映射totalDownloads{ this.totalDownloads=totalDownloads; } } 那你就可以走了:

ObjectMapper mapper=新的ObjectMapper; BintrayDownloadCounts downloadCounts=mapper.readValuejson,BintrayDownloadCounts.class;
让我知道我的作品是否适合你。作品非常漂亮,非常感谢!: