【发布时间】:2019-03-06 21:27:33
【问题描述】:
我正在尝试解析可能包含数千行的历史时间序列数据的 JSON API 响应。响应格式如下:
{
"name": "AAPL",
"history": {
"2019-03-05": {
"open": "175.94",
"close": "175.53",
"high": "176.00",
"low": "174.54",
"volume": "19163899"
},
"2019-03-04": {
"open": "175.69",
"close": "175.85",
"high": "177.75",
"low": "173.97",
"volume": "27436203"
}
}
}
我想将响应写入 Spring 存储库。我有一个简单的代码来执行此操作,下面显示了一个部分:
RestTemplate restTemplate = new RestTemplate();
JsonParser jsonParser = new JsonParser();
JsonObject jsonObject = (JsonObject) jsonParser.parse(result);
JsonElement jsonElement = jsonObject.get("history");
Set<Map.Entry<String, JsonElement>> entrySet = jsonElement.getAsJsonObject().entrySet();
for (Map.Entry<String, JsonElement> entry : entrySet) {
StockHistory stockHistory = new StockHistory();
stockHistory.setSymbol(stk);
// .... Other code
}
我根据 JSON 响应设置对象属性,将对象添加到列表中,最后将列表保存到存储库。这个过程可能非常缓慢,因为我正在为 JSON 返回中的每个元素创建一个新的 StockHistory 对象。我想知道是否有更好的方法。
【问题讨论】:
-
能否请您检查更新后的答案并告诉我是否有帮助?谢谢。 :)
标签: java json spring spring-boot