Чтение свойств массива объектов json в файле json в java - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в массиве / объектах JSON в Java. Здесь я пытаюсь получить свойство объекта JSON. Моя попытка заключается в следующем.

    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. Но я не смог найти способ вызвать getString ("имя"), как указано выше. Поэтому я очень ценю вашу помощь в этом.

Файл Json выглядит следующим образом.

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

Ответы [ 2 ]

0 голосов
/ 18 октября 2019
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));
        }

    }

вам просто нужно пройти через каждый объект внутри массива, и у каждого объекта есть ключи и значения, извлекающие его в цикле.

0 голосов
/ 18 октября 2019

Вы можете использовать как следующие

  JSONObject jsonObject = (JSONObject)playersList.get(1);
  String name = (String) jsonObject.get("name");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...