Я бы быстро объяснил, что происходит в приведенных выше данных 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")
К сожалению, вы не можете моделировать, не зная значения ключа. В таких случаях я использую этот подход. Это будет полезно для вас.
// 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);
}