我正在尝试遍历我的 json 文件并获取所需的详细信息 这是我的 json
{
"000": {
"component": "c",
"determinantType": "dt",
"determinant": "d",
"header": "h",
"determinantvalue": "null"
},
"001": {
"component": "t",
"determinantType": "i",
"determinant":"ld",
"header": "D",
"determinantvalue": "null"
},
"002": {
"component": "x",
"determinantType": "id",
"determinant": "pld",
"header": "P",
"determinantValue": "null"
}}
我的java代码
FileReader file = new FileReader("test.json");
Object obj = parser.parse(file);
System.out.println(obj);
JSONObject jsonObject = (JSONObject) obj;
JSONArray msg = (JSONArray) jsonObject.get(key);
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
String component = (String) jsonObject.get("component");
System.out.println("component: " + component);
正如您在代码中看到的那样,我正在导入我的 json 文件并尝试从中获取下一个元素并打印组件,我还应该打印标题、行列式和行列式值 谢谢
最佳答案
您没有数组 - 您有名称为“000”等的属性。数组看起来像这样:
"array": [ {
"foo": "bar1",
"baz": "qux1"
}, {
"foo": "bar2",
"baz": "qux2"
}
]
请注意 [ ... ]
- 这表示 JSON 数组。
您可以使用 keys()
遍历 JSONObject
的属性:
// Unfortunately keys() just returns a raw Iterator...
Iterator keys = jsonObject.keys();
while (keys.hasNext()) {
Object key = keys.next();
JSONObject value = jsonObject.getJSONObject((String) key);
String component = value.getString("component");
System.out.println(component);
}
或者:
@SuppressWarnings("unchecked")
Iterator<String> keys = (Iterator<String>) jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
JSONObject value = jsonObject.getJSONObject(key);
String component = value.getString("component");
System.out.println(component);
}
关于java - 如何遍历java中的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720185/