У меня есть ответ JSON, который выглядит следующим образом:Перебор вложенной Retrofit JSON результаты
{
"1":{
"id":"1",
"user_id":"1",
"children":[
{
"id":"2",
"user_id":"2",
"children":[
{
"id":"3",
"user_id":"3",
"children":[
{
"id":"4",
"user_id":"2",
"children":[]
}]
},
{
"id":"5",
"user_id":"1",
"children":[
]
}
]
},
{
"id":"6",
"user_id":"2",
"children":[
]
}
]
},
"7":{
"id":"7",
"user_id":"2",
...
}
}
Как вы можете видеть, я вложенные массивы (children
). Мне нужно пройти через этот ответ JSON, проходя через каждый вложенный массив, пока он не запустится в пустой массив children
, а затем сделает шаг назад, чтобы продолжить остальные элементы.
Я сделал класс модели для ответа, так что мой текущий код выглядит следующим образом:
RestClient.getService().getParents(new Callback<ParentResponse>() {
@Override
public void success(ParentResponse parentData, Response response) {
for (Parent parent : parentData.getData()) {
//
}
}
}
который, очевидно, только перебирает элементы верхнего уровня (идентификатор 1
и 7
в моем случае).
Модель для Parent
класса выглядит следующим образом:
public class Parent {
private String id;
private String userId;
private List<Parent> parents = new ArrayList<Parent>();
// get/set for id and userId
public List<Parent> getParents() {
return parents;
}
public void setParents(List<Parent> parents) {
this.parents = parents;
}
}
Как я могу это сделать?
Что будет в моей петле foreach? – user5728705
Ну, очевидно, 'doSomething (parent);' –