【问题标题】:How do I get a list of JSON objects out of an array among other objects using Spring RestTemplate?如何使用 Spring RestTemplate 从数组中获取 JSON 对象列表以及其他对象?
【发布时间】:2016-11-08 04:07:54
【问题描述】:

我正在尝试使用这些数据

https://api.nasa.gov/neo/rest/v1/neo/browse?api_key=DEMO_KEY

按照

的教程进行操作

http://spring.io/guides/gs/consuming-rest/

我成功检索到数据的“链接”和“页面”部分,但 near_earth_objects 数组为空。

我尝试了这篇文章中的建议:

Get list of JSON objects with Spring RestTemplate

但我的情况有点复杂,因为它不仅仅是一个充满对象的数组,如

http://bitpay.com/api/rates

最佳答案给出错误:

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not 
deserialize instance of java.lang.Object[] out of START_OBJECT token

这是我的 POJO 的样子:

@JsonIgnoreProperties(ignoreUnknown = true)
public class NearEarthObjectBrowse {
    @Id
    private Links links;
    private Page page;
    private NearEarthObject[] near_earth_objects;

我还尝试对 NearEarthObject 数组使用包装类,但仍然无法成功编组。

一般来说有没有更好的方法来做到这一点?

编辑:我相信 NearEarthObject 的结构与数据相匹配。这是我的github

【问题讨论】:

  • 你也可以发布 NearEarthObject 类吗?
  • 您为不同的 json 提供了多个链接,您在代码中使用的是哪一个?
  • 发布一个完整的、最小的例子来重现问题。
  • @Jobin 我已将链接添加到我的 github 中的代码。
  • @DerrickDaniel "我正在尝试使用这些数据 api.nasa.gov/neo/rest/v1/neo/browse?api_key=DEMO_KEY"

标签: java json spring-boot jackson resttemplate


【解决方案1】:

对于 near_earth_objects 尝试使用列表而不是数组

@JsonProperty("near_earth_objects")
private List<NearEarthObject> near_earth_objects;

【讨论】:

  • 就是这样,谢谢! @JsonProperty 行使其按预期工作。
猜你喜欢
  • 2021-08-10
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
相关资源
最近更新 更多