我正在寫一個處理股票價值的Java應用程序。 我有一個JSON文件,該文件是這樣的:從JSON創建映射
{
"Meta Data":
{
"1. Information": "Daily Prices ,
"2. Symbol": "FB",
"3. Last Refreshed": "2017-04-21 10:24:00",
"4. Output Size": "Compact",
"5. Time Zone": "US/Eastern"
},
"Time Series (Daily)": {
"2017-04-21 10:24:00": {
"1. open": "143.9000",
"2. high": "144.1700",
"3. low": "143.4600",
"4. close": "143.7800",
"5. volume": "2784942"
},
"2017-04-20": {
"1. open": "142.9500",
"2. high": "144.2500",
"3. low": "142.6900",
"4. close": "143.8000",
"5. volume": "15917800"
},
"2017-04-19": {
"1. open": "141.3500",
"2. high": "143.0400",
"3. low": "141.2700",
"4. close": "142.2700",
"5. volume": "15500400"
},
"2017-04-18": {
"1. open": "141.2700",
"2. high": "141.9100",
"3. low": "140.6100",
"4. close": "140.9600",
"5. volume": "14790800"
}
}
}
我可以使用GSON股票價值的名單,但隨後由於JSON是無序我真的不知道具體的股票價值的日期。
final Gson gson = new Gson();
final List<String> stockValues = gson.fromJson(JSON2, JsonElement.class)
.getAsJsonObject()
.get("Time Series (Daily)") // get the divisions property
.getAsJsonObject()
.entrySet() // and traverse its key/value pairs
.stream()
.map(Entry::getValue) // discarding the keys
.map(JsonElement::getAsJsonObject)
.map(jo -> jo.get("1. open")) // take the id property from the every `division` object
.map(JsonElement::getAsJsonPrimitive)
.map(JsonPrimitive::getAsString)
.collect(Collectors.toList());
我真正需要的是使其中包含對日期和股票價值的地圖(「開放」)。我該怎麼做?
您的解決方案有效,非常感謝。 –