У меня есть дерево JSON-структурированные данные. Что-то вродеAndroid parse json tree
{
"result": [
{
"id": 1,
"name": "test1"
},
{
"id": 2,
"name": "test12",
"children": [
{
"id": 3,
"name": "test123",
"children": [
{
"id": 4,
"name": "test123"
}
]
}
]
}
]
}
модель:
class DataEntity {
int id;
String name;
List<DataEntity> childDataEntity;
}
Синтаксический через org.json
List<DataEntity> categories = new ArrayList<DataEntity>();
private List<DataEntity> recursivellyParse(DataEntity entity, JSONObject object) throws JSONException {
entity.setId(object.getInt("id"));
entity.setName(object.getString("name"));
if (object.has("children")) {
JSONArray children = object.getJSONArray("children");
for (int i = 0; i < children.length(); i++) {
entity.setChildDataEntity(recursivellyParse(new DataEntity(), children.getJSONObject(i)));
categories.add(entity);
}
}
return categories;
}
вызов
JSONObject jsonObject = new JSONObject(JSON);
JSONArray jsonArray = jsonObject.getJSONArray("result");
for (int i = 0; i < jsonArray.length(); i++) {
recursivellyParse(new DataEntity(), jsonArray.getJSONObject(i));
}
Но этот путь неправильный. После выполнения метода List заполнил те же данные.
Как правильно разобрать его?
UPD: обновление JSON.
Ваш ответ недействителен, проверьте здесь http://jsonlint.com/ –
Я редактирую строку json. –
@YuriyAizenberg: Я столкнулся с той же проблемой .. Я не получил решение, написанное ниже. Не могли бы вы рассказать мне, какие изменения вы сделали, чтобы заставить его работать? – Neha