java - 如何遍历java中的json对象

标签 java json

我正在尝试遍历我的 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/

相关文章:

java - 一段代码的后置条件

php - 如何在php中使用blob图像获取所有数据库记录

javascript - 如何迭代动态生成的输入框列表并生成 json

Javascript:解析json列表

java - NewString() & NewStringUTF() 显示错误无效修改后的 UTF-8 :

java - 修改build.xml为tomcat的另一个路径

java - 我正在尝试对我的通用树递归地创建一个插入方法,我应该做什么?

javascript - 如果对象不存在,则无法在对象中创建新字段

json - 在Powershell中将方括号转换为json时添加方括号

java - 使用 JSoup 登录 Linkedin