簡體   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