繁体   English   中英

读取 java 文件中 json 文件中 json 对象数组的属性

[英]Read properties of array of json objects in a json file in java

我是 java 中 JSON 数组/对象的新手。 在这里,我正在努力获得 JSON object 的属性。 我的尝试如下。

    JSONParser jsonParser = new JSONParser();
    try(FileReader reader = new FileReader("players.json")){                                     
       //Read JSON file                                  
       Object obj = jsonParser.parse(reader);                                                                
       JSONArray playersList = (JSONArray) obj; 
       //Below is the one which is having compilation issues                                                                 
       System.out.println(playersList.get(1).getString("name")); 

    } catch (FileNotFoundException e) {                                  
       // TODO Auto-generated catch block

           e.printStackTrace();
    } catch (IOException e) {                                    
       // TODO Auto-generated catch block

          e.printStackTrace();
     } catch (ParseException e) {                                    
       // TODO Auto-generated catch block                                    
          e.printStackTrace();
    }

在那里,我试图在 JSON 数组中获取第二个 object 的名称。 但是我找不到像上面那样调用 getString("name") 的方法。 因此,我非常感谢您对此的帮助。

Json文件如下。

      [
       {
         "_id": 1, 
         "name": "greg",
       },
       {
         "_id": 2,   
         "name": "freg gre",
       }
      ]

您可以使用如下

  JSONObject jsonObject = (JSONObject)playersList.get(1);
  String name = (String) jsonObject.get("name");
JSONParser jsonParser = new JSONParser();
    try(FileReader reader = new FileReader("players.json")){                                     

       Object obj = jsonParser.parse(reader);    
 JSONArray jsonArray = new JSONArray(obj);
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject json = jsonArray.getJSONObject(i);
        Iterator<String> keys = json.keys();

        while (keys.hasNext()) {
            String key = keys.next();
            System.out.println("Key :" + key + "  Value :" + json.get(key));
        }

    }

您只需要遍历数组中的每个 object 并且每个 object 都有键和值在循环中获取它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM