java - 如何从 JsonObject java 中恢复值
问题描述
我有一个 JSonObject 列表,我只想恢复 json 中两个变量的值。
在 java 8 中,我找不到函数 getJSONObject,可能是它无法识别。首先,我将我的 json 添加到JSONObject
. 但是当我想get它的时候,编辑Intellij
建议只使用get函数。
示例:records.get(0).get("id")
我得到了下面的结果,但是当我想恢复里面的变量时:records.get(0).get("id").get("875488")...
我得到了一个错误。
My code:
JSONArray JSONArray = (JSONArray) obj;
List<JSONObject> records = new ArrayList<JSONObject>();
for (int i=0; i<JSONArray.size(); i++) {
records.add( (JSONObject) JSONArray.get(i) );
}
我试图恢复的第一个拖车价值,"lat"
但"lon"
我无法到达。有人可以帮助我吗?
我想要这样的结果:
lat = 12.13
lon = 5.02
谢谢你。
解决方案
首先,JAVA-json 的正确 Maven/Gradle 依赖项是
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
如果JSONObject#getJSONObject
找不到该方法,则说明您做错了什么。
对于代码部分,应该这样做。适应你的需要。
final JSONArray jsonArray = new JSONArray(source);
final int length = jsonArray.length();
for (int i = 0; i < length; i++) {
final JSONObject jsonObject = jsonArray.getJSONObject(i);
final JSONObject forecastOrig =
jsonObject.getJSONObject("875488")
.getJSONObject("forecast_orig");
final double lon = forecastOrig.getDouble("lon");
final double lat = forecastOrig.getDouble("lat");
System.out.println(lon);
System.out.println(lat);
}
推荐阅读
- c# - 如何从 Foreach 循环中访问隐藏输入的值?
- scala - 在 Scala 中使用自定义对象迭代 java.util.Map
- ruby-on-rails - 定义一个嵌套的 has_many 和 belongs_to
- amazon-web-services - 无法创建 aws ec2 证书。正文不得包含私钥
- vba - 功能区 onLoad 子中的 ActiveDocument 错误 4248
- azure - 以特定用户身份在系统启动时运行批处理脚本,即使该用户未登录
- javascript - 调整窗口大小时如何触发功能?
- excel - 如何为B列中的56个单元格着色
- concurrency - C++Amp 在构建/执行之前是否需要 GPU 硬件?
- google-chrome-extension - 如何在我的 chrome 浏览器中获取当前 TAB 的 URL 和标题,并在用户单击我的扩展程序图标时显示它