Вы можете проверить с помощью оператора is , чтобы проверить, является ли объект JsonObject или JsonArray, как показано ниже
val jsonObj = JSONObject(jsonString)
if(jsonObj is JsonArray){
//handle operation with JsonArray
}else if (jsonObj is JsonObject){
// treat this as JsonObject
}
Вы также можете использовать , когда выражение в kotlin для проверкиэти условия, такие как
when(jsonObj){
is JsonObject -> { // treat this as JsonObject}
is JsonArray -> { //treat this as JsonArray}
else -> { //I have to find some other way to handle this}
}
Обновление - Для вашего Json парсинг должен выполняться следующим образом
Создать pojo для следующего json скажем Xyz.kt
{
"identification": {
"id": null,
"number": {
"default": "IA224",
"alternative": null
},
"callsign": null,
"codeshare": null
}
}
val resultJson = JSONObject(jsonString)
val responseJson = resultJson.getJsonObject("response")
val dataList = responseJson.getJsonArray("data")
Если вы каждый раз получаете одинаковую структуру для ответа Json, вам не нужно проверять, является ли dataList JsonArray или JsonObject.Вы можете просто перебрать dataList, чтобы получить список объектов Xyz или получить первый JsonElement (объект Xyz), используя метод get ().