我使用高效的改造库来获取数据。我通过api获得的json如下所示:
[
{
"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的第一个对象中,我得到一个带有关键doctor_detail的数组,在第一个对象中有两个对象我得到一个数组,其中关键诊所有价格键,数组main_facility有一些其他键,如姓名,地址。
但是在doctor_detail的第二个对象中,我得到了相同的诊所密钥,但是由于这个问题,我没有在诊所里面有任何关键错误:
java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
当我要从RecyclerAdapter
获得第二个对象的价格时,在ArrayList<String> mPriceArrayList
中。
所以请告诉我是否有办法解决这类问题。 谢谢
答案 0 :(得分:1)
最后我得到了答案这是由于错误的json。它无法处理。
答案 1 :(得分:0)
亲爱的拉维,我认为不是你的问题,你的JSON错了,但仍然 您可以通过在适配器中使用try-catch块来处理它,您将获得ArrayIndexOutOfBounds Exception,并且您可以在catch块中的文本视图中设置任何您没有获得键的值:
try{
mPriceTextView.setText(mPriceArrayList.get(getAdapterPosition()));
}catch(Exception oe){
mPriceTextView.setText("price is missing");
}