enter image description hereЯ пытаюсь получить данные из json файла и сохранить их как объекты, а затем поместить в различные arrylist, я застрял на том, что не могу получить "A320" в obejcts, "type_ratings": [ "A320" ]

List Allcrews = new ArrayList<>();
List pilotsList = new ArrayList<>();
List Cabincrews = new ArrayList<>();`
public void loadCrewData(Path p) throws DataLoadingException{
    try {
        BufferedReader reader = Files.newBufferedReader(p);
    
        String jsonStr = "";
        String line = "";
        while ((line=reader.readLine()) !=null) 
        {
            jsonStr =jsonStr+line;
            }
        System.out.println ("Pilots Informations: ");
        JSONObject jsonObj = new JSONObject(jsonStr);
        JSONArray pilots = jsonObj.getJSONArray("pilots");
            for(int j =0; j

Ответы (1)

Ключ "type_ratings" возвращает JSONArray, а не строку. Это происходит из-за квадратных скобок, которые окружают строку, превращая ее в массив с 1 элементом. Вы можете либо изменить структуру JSON и убрать квадратные скобки, чтобы сделать его только строкой, либо просто сделать pil.setQualifiedFor(pilot.getJSONArray("type_ratings")[0]);, который получит массив и вернет первый элемент - строку. Помните, что так следует поступать только в том случае, если вы знаете, что type_ratings всегда будет содержать массив с 1 строкой.

2022 WebDevInsider