Как обрабатывать возврат пустого массива в ответ API в Retrofit 2 Android? - PullRequest
0 голосов
/ 02 ноября 2019

Ответ My API выглядит следующим образом.

{
"status": true,
  "message": "",
  "data": {
    "property_data": [
      {
        "iPropertyID": "179",
        "sImage": "http://192.168.1.100:8080/protechdna/img/property/180219045755Etim%25web.jpg",
        "isImageUploaded": true,
        "sTypeOfPropertyMarked": "Sound System",
        "sModel": "201",
        "sMake": "sony",
        "sSerialNumber": "12456789",
        "sApproxValue": "149",
        "sDescriptionOfProperty": "Description Of Property Description Of Property",
        "sUniqueidentifyingFeatures": "Unique identifying features Unique identifying features Unique identifying features",
        "room_detail": {
          "iRoomID": "242",
          "sRoomName": "romania"
        },
        "pin_detail": {
          "iPinID": "788",
          "sPin": "12345",
          "kit_detail": {
            "iKitID": "6",
            "sTypeOfKit": "DNA Spray"
          }
        },
        "owner_detail": {
          "iUserID": "702",
          "sEmailID": "priyank.nyusoft@gmail.com",
          "full_name": "priyank Patel",
          "address_line": "Main street",
          "sPhone": "(999) 999-9999",
          "state_detail": {
            "iStateID": "41",
            "sStateName": "Ohio"
          },
          "county_detail": {
            "iCountyID": "2117",
            "sCountyName": "Portage"
          },
          "city_detail": {
            "iCityID": "20241",
            "sCityName": "Newton Falls"
          },
          "zipcode_detail": {
            "iZipCodeID": "18762",
            "sZipcode": "44444"
          }
        }
      }
    ],
    "bicycle_data": [
      {
        "iBicycleID": "357",
        "sImage": "http://192.168.1.100:8080/protechdna/img/property/220419021553101018213027hi%20res%20bike.jpg",
        "isImageUploaded": true,
        "sBicycleName": "catrike",
        "sModel": "fgfdg",
        "sMake": "dfgfg",
        "sSerialNumber": "gfhfghtgf",
        "sApproxValue": "456",
        "sBicycleColor": "gff",
        "sUniqueidentifyingFeatures": "fghfh",
        "bicycletype_detail": {
          "iBicycleTypeID": "3",
          "sTypeName": "Touring Bikes"
        },
        "pin_detail": {
          "iPinID": "788",
          "sPin": "12345",
          "kit_detail": {
            "iKitID": "6",
            "sTypeOfKit": "DNA Spray"
          }
        },
        "owner_detail": {
          "sEmailID": "bharat.nyusoft@gmail.com",
          "full_name": "golden bicycle New",
          "address_line": "t",
          "iUserID": "",
          "sPhone": "",
          "state_detail": {
            "iStateID": "12",
            "sStateName": "Florida"
          },
          "county_detail": {
            "iCountyID": "357",
            "sCountyName": "Leon"
          },
          "city_detail": {
            "iCityID": "3900",
            "sCityName": "Tallahassee"
          },
          "zipcode_detail": {
            "iZipCodeID": "13609",
            "sZipcode": "32312"
          }
        }
      },
      {
        "iBicycleID": "356",
        "sImage": "http://192.168.1.100:8080/protechdna/img/property/020419084735041018112608hi%20res%20bike.jpg",
        "isImageUploaded": true,
        "sBicycleName": "catrike",
        "sModel": "erer 123",
        "sMake": "df",
        "sSerialNumber": "12456789012",
        "sApproxValue": "10",
        "sBicycleColor": "erer",
        "sUniqueidentifyingFeatures": "erer",
        "bicycletype_detail": {
          "iBicycleTypeID": "2",
          "sTypeName": "Cyclocross Bikes"
        },
        "pin_detail": {
          "iPinID": "788",
          "sPin": "12345",
          "kit_detail": {
            "iKitID": "6",
            "sTypeOfKit": "DNA Spray"
          }
        },
        "owner_detail": {
          "iUserID": "600",
          "sEmailID": "das@gmail.com",
          "full_name": "Das Patel",
          "address_line": "",
          "sPhone": "(123) 777-7007",
          "state_detail": null,
          "county_detail": null,
          "city_detail": null,
          "zipcode_detail": null
        }
      }
    ],
    "vehicle_data": [

    ],
    "accessory_data": [

    ]
  }
}

В последнем массиве вы можете видеть, что нет данных и показаны скобки в vehicle_data и accessory_data. Когда API возвращает ответ такого типа, отклик на модификацию идет. в случае отказа вместо ответа. кто-нибудь может мне помочь в этом? Это сторонний API, который я не могу изменить в ответе со стороны сервера.

1 Ответ

0 голосов
/ 02 ноября 2019

В этом случае вы возвращаете список без типов атрибутов / типов данных. Позвольте мне уточнить Если у вас есть атрибуты / элементы, вы можете создать класс pojo для перехвата ответа, так как, по вашему мнению, перехватить ответ? не имеет класса типа модель / pojo, поэтому это исключение, вызывающее метод OnFailour. Если вы хотите использовать этот список, поместите туда некоторые атрибуты и установите их в значение null, как, например, то, что вы делали с другими списками

, иначе вы можете быть уверены, что после получения успешного ответа, если он пуст или нет,поместите это условие в ваш OnResponse метод

if(response.body().toString().length()==0)
  {
    //array is empty
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...