Я пытаюсь преобразовать следующие данные API в класс Java. Я особенно заинтересован в выборе поля timeSeriesDaily с ключом даты и полем закрытия. Я попытался использовать следующие структуры данных для захвата соответствующих полей
public class AlphavantageData {
List<Map<String,TimeSeriesDaily>> timeSeriesDaily;
public List<Map<String, TimeSeriesDaily>> getTimeSeriesDaily() {
return timeSeriesDaily;
}
public void setTimeSeriesDaily(List<Map<String, TimeSeriesDaily>> timeSeriesDaily) {
this.timeSeriesDaily = timeSeriesDaily;
}
}
public class TimeSeriesDaily {
private Map<String,DayCloseStockPrice> dayStockPriceRecords;
public Map<String, DayCloseStockPrice> getDayStockPriceRecords() {
return dayStockPriceRecords;
}
public void setDayStockPriceRecords(Map<String, DayCloseStockPrice> dayStockPriceRecords) {
this.dayStockPriceRecords = dayStockPriceRecords;
}
}
public class DayCloseStockPrice {
private String closingStockPrice;
public String getClosingStockPrice() {
return closingStockPrice;
}
public void setClosingStockPrice(String closingStockPrice) {
this.closingStockPrice = closingStockPrice;
}
}
Однако я продолжаю получать следующую ошибку GSON:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 10 column 10 path $.timeSeriesDaily[0]
Буду признателен, если кто-нибудь ответит, почему это не так. не работает и как это исправить.
Спасибо.
PS: Это образец текста JSON.
{
"Meta Data": {
"1. Information": "Daily Time Series with Splits and Dividend Events",
"2. Symbol": "MSFT",
"3. Last Refreshed": "2019-10-24",
"4. Output Size": "Compact",
"5. Time Zone": "US/Eastern"
},
"timeSeriesDaily": [
"2019-10-24": {
"1. open": "139.3900",
"2. high": "140.4100",
"3. low": "138.6700",
"closingStockPrice": "139.9400",
"5. adjusted close": "139.9400",
"6. volume": "34434281",
"7. dividend amount": "0.0000",
"8. split coefficient": "1.0000"
},