目前,我从像这样的算法中检索到一个JSON对象:
{
"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"
}
如您所见,在此记录中,上面的JSON中没有“ instagram”字段。但其他记录在JSON中具有“ instagram”字段。在Android应用程序中解析JSON时遇到问题,因为并非所有数据都包含“ instagram”字段。
我使用此代码解析“ instagram”字段,如果传入的JSON无法使用“ instagram”字段,那么我想分配一个空字符串,例如以下代码:
val instagram = jsonObject.get("instagram") as? String ?: ""
jsonObject
数据类型是Java类JSONObject
(导入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都没有?