Cześć ! Mam pewien problem.
Używam API ze strony www.worldtradingdata.com .
Do pobierania danych z API i deserializacji używam Retrofit-a i GSON-a.
Gdy próbuję pobrać historię kursu danej firmy otrzymuję takiego JSON-a:
{
"symbol": "AAPL",
"stock_exchange_short": "NASDAQ",
"timezone_name": "America/New_York",
"intraday": {
"2019-03-15 15:30:00": {
"open": "186.99",
"close": "186.19",
"high": "187.08",
"low": "185.90",
"volume": "10159747"
},
"2019-03-15 14:30:00": {
"open": "187.04",
"close": "187.00",
"high": "187.32",
"low": "186.89",
"volume": "2642621"
},
"2019-03-15 13:30:00": {
"open": "186.71",
"close": "187.03",
"high": "187.25",
"low": "186.67",
"volume": "2995048"
},
"2019-03-15 12:30:00": {
"open": "186.69",
"close": "186.72",
"high": "186.81",
"low": "186.38",
"volume": "2762442"
},
"2019-03-15 11:30:00": {
"open": "186.21",
"close": "186.69",
"high": "186.96",
"low": "186.10",
"volume": "3327219"
},
"2019-03-15 10:30:00": {
"open": "185.25",
"close": "186.22",
"high": "186.49",
"low": "184.91",
"volume": "4503421"
},
"2019-03-15 09:30:00": {
"open": "184.84",
"close": "185.25",
"high": "185.34",
"low": "183.74",
"volume": "12261774"
}
}
}
Kiedy dodałem go na stronę www.jsonschema2pojo.org, narzędzie pokazuje mi, abym zrobił osobą klasę dla każdej z dat:
public class Intraday {
@SerializedName("2019-03-15 15:30:00")
@Expose
private com.example._20190315153000 _20190315153000;
@SerializedName("2019-03-15 14:30:00")
@Expose
private com.example._20190315143000 _20190315143000;
@SerializedName("2019-03-15 13:30:00")
@Expose
private com.example._20190315133000 _20190315133000;
@SerializedName("2019-03-15 12:30:00")
@Expose
private com.example._20190315123000 _20190315123000;
@SerializedName("2019-03-15 11:30:00")
@Expose
private com.example._20190315113000 _20190315113000;
@SerializedName("2019-03-15 10:30:00")
@Expose
private com.example._20190315103000 _20190315103000;
@SerializedName("2019-03-15 09:30:00")
@Expose
private com.example._20190315093000 _20190315093000;
Wszytko by było dobrze gdyby nie to, że te daty się zmieniają. Może i ten JSON jest dobry, ale ja nie wiem co zrobić.
W poprzednim API, którego używałem odpowiedź była taka:
[{
"date": "2017-04-03",
"open": 143.1192,
"high": 143.5275,
"low": 142.4619,
"close": 143.1092,
"volume": 19985714,
"uOpen": 143.1192,
"uHigh": 143.5275,
"uLow": 142.4619,
"uClose": 143.1092,
"uVolume": 19985714,
"change": 0.039835,
"changePercent": 0.028,
"label": "Apr 03, 17",
"changeOverTime": -0.0039
},
{
"date": "2017-04-2",
"open": 143.1192,
"high": 144.5275,
"low": 142.4619,
"close": 143.1092,
"volume": 19985714,
"uOpen": 143.1192,
"uHigh": 143.5275,
"uLow": 142.4619,
"uClose": 143.1092,
"uVolume": 19985714,
"change": 0.039835,
"changePercent": 0.028,
"label": "Apr 03, 17",
"changeOverTime": -0.0039
}
]
Przy takiej odpowiedzi wiedziałem jak wydobyć odpowiednie dane, które potrzebowałem.
Dodam jeszcze tylko tyle, że chcę zrobić wykres ( na osi X - daty ; na osi Y - ceny ).
Mógłby mi ktoś wytłumaczyć jak to zrobić ?
Może się to wydawać banalne ale nie wiem co zrobić.