Android 在使用改型库获取数据时如何处理JSON中缺少的键
我正在使用高效的翻新库来获取数据。我通过api获得的json如下所示:Android 在使用改型库获取数据时如何处理JSON中缺少的键,android,json,gson,retrofit,Android,Json,Gson,Retrofit,我正在使用高效的翻新库来获取数据。我通过api获得的json如下所示: [ { "doctor_detail": [ { "experience_years": null, "clinic": [ { "price": 163, "main_facility": {
[
{
"doctor_detail": [
{
"experience_years": null,
"clinic": [
{
"price": 163,
"main_facility": {
"name": "West Delhi Dental Clinic",
"address": {
"mobile": "+911166107201",
"latitude": null,
"longitude": null,
"locality": {
"city": {
"name": "Delhi"
},
"name": "Janak Puri"
}
}
}
}
],
"specialities": [
{
"name": "Dentist",
"slug": "dentist"
}
],
"owner": {
"first_name": "Bhudev",
"last_name": "Sharma",
"middle_name": null
},
"logo": [],
"doctor_id": "286207",
"education": []
},
{
"experience_years": null,
"clinic": [],
"specialities": [],
"owner": {
"first_name": "Hema",
"last_name": "Anand",
"middle_name": null
},
"logo": [],
"doctor_id": "12137",
"education": []
}
]
},
{
"last_page": 2
},
{
"title": "dentist"
}]
在json的第一个对象中,我得到了一个带有key doctor_detail的数组,在第一个对象中有两个对象,我得到了一个带有key clinic的数组,它有price key,还有一个数组main_facility,它有一些其他键,比如name、address
但在doctor_细节的第二个对象中,我得到了相同的诊所密钥,但诊所内没有任何密钥,因此我得到了一个运行时错误:
java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
在RecyclerAdapter
中,我将从ArrayList MPricarrayList
获取第二个对象的价格
所以,请告诉我是否有办法处理这种问题。
谢谢亲爱的拉维,我想这不是你的问题,你弄错了,但是 您可以通过在适配器中使用try catch块来处理它,在适配器中获取ArrayIndexOutOfBounds异常,您可以在catch块的文本视图中设置任何未获取键的值,如:
try{
mPriceTextView.setText(mPriceArrayList.get(getAdapterPosition()));
}catch(Exception oe){
mPriceTextView.setText("price is missing");
}
最后我得到了答案,这是由于错误的json。它无法处理