Значение объекта ответа поступает в массив и некоторый объект времени, как определить в моем коде?

Мой ответ имеет много значений, но одно из них - это объект фильтра, который поступает некоторое время в массиве и некоторое время в объекте.

  • Как найти это объект или массив, я использую 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") должны быть изменены, чтобы добраться до правильного местоположения.

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