我有一個包含這樣資料的 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 后,他們將貨幣中的所有資料都設為物件,而我只想要第一個物件,有什么辦法可以得到它?
uj5u.com熱心網友回復:
好的,所以你在這里有兩個選擇......
選項 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決議樹并組裝所需的物件。
這篇文章解釋了如何做到這一點,并附帶了一個作業代碼示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/351823.html
