Как читать массивы из файла JSON? - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь прочитать данные из JSON.Я добавляю Firebase в свое приложение для Android, и все работает нормально, но я не понимаю, как читать поля массива.

Например, мне нужно получить поле "correctAnswers":["Var1","Var4"], но я не могу ответить, как Googleсделай это.

Пожалуйста, объясните.Спасибо.

часть моего файла JSON

 {
    "answA" : "Var1",
    "answB" : "Var2",
    "answC" : "Var3",
    "answD" : "Var4",
    "categoryId" : 1,
    "correctAnswers":["Var1","Var4"],
    "id" : 104,
  }

Я получаю курсор

Cursor cursor = sqlLiteDataBaseInstance.rawQuery(String.format("SELECT * FROM Question WHERE CategoryID = %d ORDER BY RANDOM() LIMIT 30", category), null);

и могу читать answA, answB, answC, answD, используя

cursor.getString(cursor.getColumnIndex(String columnName)) и

categoryId, id using cursor.getInt(cursor.getColumnIndex(String columnName))

1 Ответ

0 голосов
/ 02 января 2019

Проверьте это.

  private void readJson() {
        try {
            JSONObject jsonObject = new JSONObject("{\n" +
                    "\t\"answA\": \"Var1\",\n" +
                    "\t\"answB\": \"Var2\",\n" +
                    "\t\"answC\": \"Var3\",\n" +
                    "\t\"answD\": \"Var4\",\n" +
                    "\t\"categoryId\": 1,\n" +
                    "\t\"correctAnswers\": [\"Var1\", \"Var4\"],\n" +
                    "\t\"id\": 104\n" +
                    "}");

            JSONArray jsonArray = jsonObject.getJSONArray("correctAnswers");
            Log.e("Array Size is ", jsonArray.length() + "");

            for (int i = 0; i < jsonArray.length(); i++) {
                Log.e("Array Values", jsonArray.getString(i) + "");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...