java - 如何从对象内部的数组中获取值?
问题描述
我想从 JSON 中获取纬度和经度的值,它由两个对象“stoppage”和“routePlaceback”组成,现在我只能从“routePlaceback”获取数据,但我不知道如何获取纬度和经度的值?代码如下,
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class Finder_Json
{
@SuppressWarnings("rawtypes")
public static void main(String[] args) throws Exception
{
// parsing JSON file
Object sampleFile_object = new JSONParser().parse(new FileReader("sample.json"));
// typecasting object to JSONObject
JSONObject sampleFile_JSONObject = (JSONObject) sampleFile_object;
JSONArray routePlaceback = (JSONArray) sampleFile_JSONObject.get("routePlaceback");
Iterator iterator_1 = routePlaceback.iterator();
while (iterator_1.hasNext())
{
System.out.println(iterator_1.next());
System.out.println("\n");
}
}
}
我的sample.json
文件包括,
{
"stoppage":
[
{
"latitude": "23.074207",
"longitude": "72.557227",
"record_date": 1556217000,
"start_time": 1556217000,
"end_time": 1556304360,
"duration_time": 1456
}
],
"routePlaceback":
[
{
"distance": 0.36,
"longitude": "72.502385",
"ignition": 1,
"record_date": 1556303400,
"speed": 53.708,
"latitude": "23.034403"
},
{
"distance": 0.38,
"longitude": "72.506072",
"ignition": 1,
"record_date": 1556303430,
"speed": 25.927999,
"latitude": "23.034045"
}
]
}
这是我运行上面的代码时得到的,
但我想要的输出是,
23.034403, 72.502385
23.034045, 72.506072
解决方案
我修改了一点你的代码来实现你的目标。请在下面找到示例:
import java.io.FileReader;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class Finder_Json
{
@SuppressWarnings("rawtypes")
public static void main(String[] args) throws Exception
{
// parsing JSON file
Object sampleFile_object = new JSONParser().parse(new FileReader("src/main/resources/sample.json"));
// typecasting object to JSONObject
JSONObject sampleFile_JSONObject = (JSONObject) sampleFile_object;
JSONArray routePlaceback = (JSONArray) sampleFile_JSONObject.get("routePlaceback");
Iterator iterator = routePlaceback.iterator();
while (iterator.hasNext()) {
JSONObject objt = (JSONObject) iterator.next();
System.out.println(objt.get("latitude") + ", " + objt.get("longitude"));
}
}
}
推荐阅读
- python - Python Boto3 显示最后一条记录的信息不完整
- php - 为什么在 HTML FORM 的可空字段中插入一个值会给我一个 NULL,即使它不是?
- ios - 如何在 SwiftUI 中缩小导航标题?
- r - Matchit R - 如何运行 1 CONTROL: 2 TREATED 单位的比率?
- python - 关于在列表中查找 X 的索引的 Python 练习
- java - 使用 spring 绑定到 LDAP
- angular - rxjs,如何使用两个触发器获取最新数据并知道谁被触发了?
- java - 运行时错误正在抛出,我不知道为什么
- c++ - 递归深度复制队列 C++(使用双向链表实现)
- java - OptionalBinding 无法覆盖默认绑定