繁体   English   中英

如何获取数据对象的第一个数据对象(REST api)

[英]How to get the first data object of a data object (REST api)

我有一个包含这样数据的 REST api

{
   ...
   ... //<- more data here
   ...

   "currencies": {
       "BTN": {
          "name": "Bhutanese ngultrum",
          "symbol": "Nu."
       },
       "INR": {
          "name": "Indian rupee",
          "symbol": "₹"
       }
   }

  ...
  ... //<- more data here
  ...
}

我正在用 java 做一个项目,我需要使用 okhttp 并从可用的休息 api 显示有关国家的信息,在我使用这个 api 之前,它在数据数组中包含所有货币数据,这很有帮助,因为你可以从数组中获取第一个零对象,但是在他们更新 api 后,他们将货币中的所有数据都设为一个对象,而我只想要第一个对象,有什么办法可以得到它?

好的,所以你在这里有两个选择......

选项 1.创建两个这样的类,并使用ObjectMapper类为您进行自动去实化。

class CurrencyData {
  String name;
  String symbol;
}

class CurrencyJsonResponse {
   CurrencyData INR;
   CurrencyData BTN;
}

public static void main(String[] args) {
   OkHttpClient client = // build an instance;
   ObjectMapper objectMapper = new ObjectMapper(); 
   ResponseBody responseBody = client.newCall(request).execute().body(); 
   CurrencyJsonResponse currencyResponse = objectMapper.readValue(responseBody.string(), CurrencyJsonResponse.class);
   //Get data by using getters on currencyResponse object
}

选项 2您可以通过扩展StdDeserializer<T>类来编写自定义反实现器。 您必须以编程方式检查JsonNode解析树并组装所需的对象。

这篇文章解释了如何做到这一点,并附带了一个工作代码示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM