java - Java中json文件中的股票价格
问题描述
我需要从 Java 中的 JSON 文件中读取股票价值,这是文件
{"name":"UCG.MI", "history":
{"2019-05-16":{"op":"1","cl":"2","h":"2","lo":"1","vol":"10"},
"2019-05-15":{"op":"1","cl":"2","h":"2","lo":"1","vol":"10"},
"2019-05-14":{"op":"1","cl":"2","h":"2","lo":"1","vol":"10"},
"2019-05-13":{"op":"1","cl":"2","h":"2","lo":"1","vol":"10"},
"2000-01-04":{"op":"1","cl":"2","h":"2","lo":"1","vol":"10"},
"2000-01-03":{"op":"1","cl":"2","h":"2","lo":"1","vol":"10"}
}
}
我可以使用 org.json 获取“名称”
json = new String(Files.readAllBytes(Paths.get("UCG.json")), "UTF-8");
JSONObject obj = new JSONObject(json);
String pageName = obj.getString("name");
System.out.println(pageName);
有人可以帮我阅读文件的其余部分吗?
我试试
JSONArray arr = obj.getJSONArray("history");
for (int i = 0; i < arr.length(); i++) {
String post_id = arr.getJSONObject(i).getString("op");
}
但我得到错误
org.json.JSONException: JSONObject["history"] 不是 JSONArray。
提前致谢
解决方案
您收到错误是因为history
JSON 中的属性不是数组而是对象。尝试以下部分而不是您已有的部分
JSONObject history = obj.getJSONObject("history");
for (String date: history.keySet()) {
JSONObject post = history.getJSONObject(date);
String postId = post.getString("op");
// ...
}
推荐阅读
- android - 导航组件向上箭头不起作用
- reactjs - React chartjs 2 如何获取内部 Chart.js 对象来注册插件
- mongodb - Tailable 游标与更改流,用于通知上限集合中的插入操作
- java - Android Studio 无法连接到 Firebase 并出现错误 Failed to get FIS auth token
- c++ - cpp中最简单的Graph实现
- firebase - 某些用户的 Firebase 存储视图
- javascript - 在使用条件时反应原生导航显示两个堆栈
- c - 为什么这种使用 realloc 会产生 sigtrap 错误?
- reactjs - 使用 useEffect 反应添加事件 DOMContentLoaded
- assembly - 装配 MASM 程序未运行