gpt4 book ai didi

java - RESTeasy/JAXB 的 JSON 解析错误

转载 作者:行者123 更新时间:2023-12-02 06:24:15 25 4
gpt4 key购买 nike

我正在尝试调用 iTunes REST 服务,该服务通过 RESTeasy 客户端返回有关 iTunes 中定义的流派的信息。此调用返回的 JSON 对象如下所示:

{
"35":{
"name":"iPod Games",
"id":"35",
"url":"https://itunes.apple.com/us/genre/ipod-games/id35"
},
"36":{
"name":"App Store",
"id":"36",
"url":"https://itunes.apple.com/us/genre/ios/id36?mt=8"
}
}

我已经像这样定义了我的响应对象模型:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ITunesGenre implements Serializable {

private static final long serialVersionUID = 4330727214147295490L;

@XmlElement
private String name = null;

@XmlElement
private String id = null;

...

}

但是,当我通过 RESTeasy 客户端进行调用时,我收到序列化错误。我相信这是因为这不是真正的列表或对象数组。相反,似乎每个条目都有一个“标识符”(在上面的示例中为“35”或“36”)。

给定一个这样的 JSON 对象,我如何映射它以便 RESTeasy 客户端可以反序列化它?我以前没有遇到过这种格式的对象。显然,我无法对每个标识符进行硬编码,因为会有多个标识符,并且它们可能会发生变化。

您可以通过 clicking here 查看此调用返回的完整 JSON 对象(它很大) 。您将看到在整个对象中都可以找到此对象结构,而不是使用简单的对象列表或数组。

有什么想法吗?我非常感谢您能提供的任何帮助。

最佳答案

响应是一个 Map,因此根元素不是您的 ITunesGenre 类,而是 Map。我想很清楚如何修改响应对象。

关于java - RESTeasy/JAXB 的 JSON 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com