Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在使用改型库获取数据时如何处理JSON中缺少的键_Android_Json_Gson_Retrofit - Fatal编程技术网

Android 在使用改型库获取数据时如何处理JSON中缺少的键

Android 在使用改型库获取数据时如何处理JSON中缺少的键,android,json,gson,retrofit,Android,Json,Gson,Retrofit,我正在使用高效的翻新库来获取数据。我通过api获得的json如下所示: [ { "doctor_detail": [ { "experience_years": null, "clinic": [ { "price": 163, "main_facility": {

我正在使用高效的翻新库来获取数据。我通过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的第一个对象中,我得到了一个带有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。它无法处理