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

Я бы быстро объяснил, что происходит в приведенных выше данных JSON;

У меня есть таблица с сообщениями, в которой некоторые сообщения имеют общий столбец message_id. Я сгруппировала сообщения по message_id. красные поля - это message_id, у которых есть дети

Теперь на вопрос;

возможно ли получить доступ к дочерним элементам различных массивов message_id, фактически не используя строку message_id?

i.e перебирать массивы

while (i < array.length) {
    array[i]
}

если это возможно, как я могу это сделать?

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

 val jsonObject = JSONObject(response)

                        if (!jsonObject.getBoolean("error")) {
                            //getting data array from json response object
                            val dataObject = jsonObject.getJSONObject("data")
                            Log.i("MessageFragment", "[][] data array " + dataObject)
                            val array = dataObject.getJSONArray("NzbyxhmodN")

                            var i = 0
                            while (i < array.length()) {
                                //getting wallet object from json array
                                val message = array.getJSONObject(i)

                                //adding the wallet to wallet list
                                messageList!!.add(Message(
                                        message.getInt("id"),
                                        message.getInt("sender_id"),
                                        message.getInt("receiver_id"),
                                        message.getString("subject"),
                                        message.getString("message"),
                                        message.getString("message_id"),
                                        message.getString("timestamp"),
                                        message.getBoolean("isRead")
                                ))
                                i++
                            }

Я хочу получить массивы без использования имени, т.е. ("NzbyxhmodN")

0
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

К сожалению, вы не можете моделировать, не зная значения ключа. В таких случаях я использую этот подход. Это будет полезно для вас.

// data -> server json response
Iterator keys = data.keys();
while(keys.hasNext()) {
    // random key
    String key = (String)keys.next();
    // and value...
    JSONArray value = data.getJSONArray(key);
}

Другие вопросы по теме