Как реализовать

208
01 марта 2019, 04:00

Помогите , немогу реализовать Json код . Мне нужно взять данные но немогу понять как .... можете мне прописать этот код.....

Json лежит в папке assets/json/dannye.json

Вот реализатор класс

public class Utility {

public static String getFileContent(Context context) throws IOException {
    InputStream inputStream = context.getAssets().open("json/dannye.json");
    StringBuilder rawContentBuilder = new StringBuilder();
    byte[] buffer = new byte[1024];
    inputStream.read(buffer);
    do {
        String chunk = new String(buffer);
        rawContentBuilder.append(chunk);
    } while (inputStream.read(buffer) > 0);
    return rawContentBuilder.toString();
  }
}

А вот так я его беру из класса Фрагмент

private List<Dannye> initData() {

    try {
        String rawJson = Utility.getFileContent(getContext());
        JSONObject(rawJson).getJSONArray(groupName);
        JSONArray group = new JSONObject(rawJson).getJSONArray("d_1_18");
        Log.e(TAG, "initializeHeroes: " + group);
        list = new ArrayList<>();
        for (int i = 0; i < group.length(); i++) {
            JSONObject hero = group.getJSONObject(i);

            String hour = hero.getString("hour");
            String lesson = hero.getString("lesson");
            String spes = hero.getString("spes");
            String aut = hero.getString("aut");
            Dannye dannye = new Dannye(hour, lesson, spes, aut);
            list.add(dannye);
        }
    } catch (IOException e) {
        System.out.println("NO bATTLE.JSON!!!");
    } catch (JSONException e) {
        System.out.println("JSON MALFoRMEEEED!!");
    }
    return list;
   }

Как мне прописать код чтоб взять данные у меня ошибка NullpointExeption

Вот собственно Json

  {
   "d_1_18": {
    "Monday": [{
        "hour": "08:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "09:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "11:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "12:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "14:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "15:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "17:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    }],
    "Tuesday": [{
        "hour": "08:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "09:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "11:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "12:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "14:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "15:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "17:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    }]
    },
     "d_2_18": {
    "Monday": [{
        "hour": "08:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "09:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "11:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "12:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "14:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "15:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "17:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    }],
    "Tuesday": [{
        "hour": "08:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "09:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "11:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "12:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "14:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "15:30",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    },{
        "hour": "17:00",
        "lesson": "Informatika",
        "spes": "prog",
        "aut": "105"
    }]
}

}

Answer 1

d_1_18 - у Вас объект (фигурные скобки{}), а массив Monday (угловые[]), значит код должен быть таким:

JSONArray group = new JSONObject(rawJson).getJSONObject("d_1_18").getJSONArray("Monday");

P.S. Чтобы не получать NPE в адаптере лучше создавать пустой список сразу при объявлении, а потом наполнять данными.

READ ALSO
Окно закрытия приложения

Окно закрытия приложения

Подскажите пожалуйста, как правильно будет реализоватьУ меня имеется окно закрытия приложения (при нажатии на кнопку назад из главного экрана...

169
Какой символ использует DecimalFormat вместо пробела?

Какой символ использует DecimalFormat вместо пробела?

Пытаюсь убрать пробелы из строки, но ничего не происходит

300
java.sql.sqlexception access denied for user &#39;root&#39;@&#39;192.168.0.3&#39;

java.sql.sqlexception access denied for user 'root'@'192.168.0.3'

Пытаюсь подключиться к базе запущенной из XAMPP с другого компьютера по локалкеАдрес сервера 192

176
Конструкторы с геттерами и сеттерами и их работа

Конструкторы с геттерами и сеттерами и их работа

Друзья! Я понял как работают сеттеры, геттеры и конструкторыНо не понял одну вещь:

170