Check which type of data is coming as response using Retrofit

Viewed 3312

As I'm using Retrofit, I've designed all the POJOs and it was working flawlessly. API is designed in such a way that it will send the required data if the data is of current date or of future dates but not for past dates. In the response, I'll get a JSON response contains a combination of JSON objects and an array as a value of a JSON object and POJOs are according to that. Now if there is no record for present and future dates then I'll receive a string instead of an array and that leads to API error java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING. So what I wanna know if there is any way that I can determine - what I'm receiving an array or a string? and how to update POJO according to that to avoid that error.

JSON response when server has no data

{
"Result_Code": "ND",
"Result_Status": "Success",
"Result_Message": "No record found in database.",
"Result_Output": "",
"updatedDate": "20-07-2017 10:44:37"
}

JOSN response will be same when server has data but with one difference

{
 "Result_Code": "ND",
 "Result_Status": "Success",
 "Result_Message": "record found in database.",
 "Result_Output": [{multiple elements},
                   {multiple elements},
                   {multiple elements}....],
 "updatedDate": "20-07-2017 10:44:37"
 }
2 Answers
Related