Значение объекта ответа поступает в массив и некоторый объект времени, как определить в моем коде?
Мой ответ имеет много значений, но одно из них - это объект фильтра, который поступает некоторое время в массиве и некоторое время в объекте.
- Как найти это объект или массив, я использую Gson в Android.
Придя в массив, как это,
"filter": [ { "id": 3, "level": "0", "parent_id": 0, "category_name": "Women", "LEVEL1": [ { "id": 130, "level": "1", "parent_id": 3, "parent_name": "Women", "category_name": "Saree", "LEVEL2": [ { "id": 152, "level": "2", "parent_id": 130, "parent_name": "Saree", "parent_parent_id": 3, "parent_parent_name": "Women", "category_name": "Party Wear" } ] } ]
Некоторое время впереди, как это,
"filter": { "0": { "attribute_title": "Brand", "attribute_id": 1, "childs": [ { "child_attribute_name": "Ambica", "child_attribute_id": 530, "count": 38 } ] }
Я использую Gson, то, как идентифицировать в коде,
1 ответ
Использование GSON API:
Создайте JsonObject
из ответа json и передайте его следующему методу:
public Class<?> getJSONType(JsonObject jsObj) {
GsonBuilder gBuilder = new GsonBuilder();
Gson gson = gBuilder.create();
Object obj = gson.fromJson(jsObj.get("filter"), Object.class);
if(obj instanceof List){
return List.class;
}else if(obj instanceof Map){
return Map.class;
}
return null;
}
Здесь я рассмотрел, что фильтр является элементом верхнего уровня в вашем JSON. Код jsObj.get("filter")
должны быть изменены, чтобы добраться до правильного местоположения.