В настоящее время я извлекаю объект JSON из algolia, например, в свое приложение:
{
"title": "Manajemen Masjid sesuai sunnah Rasulullah",
"address": "Jl. Tebet Utara I No.40, RT.8/RW.2, Tebet Tim., Tebet, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12820, Indonesia",
"additionalAddress": "",
"capacity": 0,
"city": "Jakarta",
"creatorIsVerified": true,
"description": "Dua aplikasi milik Facebook",
"email": "abcd@gmail.com",
"eventID": "000b4e1a-f65e-4d77-83ce-d0770d344d4b",
"eventType": "Kajian Umum",
"_geoloc": {
"lat": -6.2256428,
"lng": 106.8527658
},
"hasBeenApproved": true,
"numberOfContact": "081808664",
"price": 0,
"rankPoint": 300000000,
"speaker": "Syafiq Reza Basalamah",
"venue": "Aql Islamic Center 2",
"website": "http://www.lakuin.id"
}
, как вы можете видеть, в этой записи нет никакого поля "instagram" в JSON выше. но другие записи имеют поле «instagram» в JSON. У меня проблема при анализе этого JSON в моем приложении для Android, потому что не все данные содержат поле «instagram».
Я анализирую поле «instagram» с помощью этого кода, если поле «instagram» недоступно извходящий JSON, затем я хочу назначить пустую строку, как показано ниже:
val instagram = jsonObject.get("instagram") as? String ?: ""
тип данных jsonObject
- это класс java JSONObject
(import org.json.JSONObject)
но эта линия приведет к краху. сообщение об ошибке:
Причина: org.json.JSONException: Нет значения для Instagram
E / CrashlyticsCore: неожиданный метод, вызванный в AppMeasurement.EventListener: onEvent (java.lang.String, java.lang.String, android.os.Bundle, java.lang.Long);возвращая null
так как написать код, который может обрабатывать оба случая, имеет ли оно поле «instagram» или нет из входящего json?