Android 获取编号的json键值

Android 获取编号的json键值,android,json,Android,Json,下面是我从API得到的响应 [{ "claim1": [{ "claim_no": "1", "claim_date": "14\/06\/2017 12:00:00 AM", "month_code": "1", "claim_amount": "8074" }] }, { "billing1": [{ "claim_n

下面是我从API得到的响应

[{
        "claim1": [{
            "claim_no": "1",
            "claim_date": "14\/06\/2017 12:00:00 AM",
            "month_code": "1",
            "claim_amount": "8074"
        }]
    }, {
        "billing1": [{
            "claim_no": "141",
            "month_code": "1",
            "miti": "6",
            "amount": "7374",
            "paid": "7374",
            "fee1": "0"
        }]
    }, {
        "claim2": [{
            "claim_no": "26",
            "claim_date": "20\/06\/2017 12:00:00 AM",
            "month_code": "2",
            "claim_amount": "2424"
        }]
    }, {
        "billing2": []
    }, {
        "claim3": [{
            "claim_no": "40",
            "claim_date": "13\/07\/2017 12:00:00 AM",
            "month_code": "3",
            "claim_amount": "2924"
        }]
    }, {
        "billing3": [{
            "claim_no": "724",
            "month_code": "3",
            "miti": "13",
            "amount": "2924",
            "paid": "2924",
            "fee1": "0"
        }]
    }, {
        "claim4": [{
            "claim_no": "43",
            "claim_date": "09\/08\/2017 12:00:00 AM",
            "month_code": "4",
            "claim_amount": "2424"
        }]
    }, {
        "billing4": [{
            "claim_no": "402",
            "month_code": "4",
            "miti": "20",
            "amount": "5348",
            "paid": "3124",
            "fee1": "0"
        }]
    }]

我正在使用aQuery jsonarray类。
我试图在JSON对象中获取它,但得到了如下错误

无法将jsonarray转换为jsonobject

下面是我的代码。
此代码向我显示此错误

“org.json.JSONException:索赔没有值\u No”

我想得到索赔编号的价值

aq.ajax("myapiurlhere", JSONArray.class, new AjaxCallback<JSONArray>(){
            @Override
            public void callback(String url, JSONArray array, AjaxStatus status) {
                super.callback(url, array, status);
                Log.i("response:", "response:" + url + array);

                for (int i = 0; i < array.length(); i++) {

                    try {

                        JSONObject object = array.getJSONObject(i);

                        bill_no = object.getString("claim_no");


                        Log.i("response:","claim: "+claim_no+" bill: "+object);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }


                }
            }
        });
ajax(“myapirlhere”,JSONArray.class,新的AjaxCallback(){ @凌驾 公共无效回调(字符串url、JSONArray数组、AjaxStatus状态){ super.callback(url、数组、状态); Log.i(“响应:”,“响应:”+url+数组); 对于(int i=0;i 我也尝试了下面的代码,但我得到了一个错误

“org.json.JSONArray类型的claim1无法转换为JSONObject”

ajax(“myapirl”,JSONArray.class,新的AjaxCallback(){ @凌驾 公共无效回调(字符串url、JSONArray数组、AjaxStatus状态){ super.callback(url、数组、状态); Log.i(“响应:”,“响应:”+url+数组); 对于(int i=0;i这是一个数组

"claim1": [
你得到了一个目标

JSONObject claimobject = object.getJSONObject("claim"+mycount);
你需要先得到一个数组

 JSONObject claimobject = object.getJSONArray("claim"+mycount).getJSONObject(0);
此外,您的API结构不良,并且
int mycount=i+1可能会失败,因为您同时计算帐单和索赔元素

试试这个

for (int i = 0; i < array.length(); i++) {
    int mycount = (i/2)+1;
    try {
for(int i=0;i
JSONArray无法转换为JSONObject
…不言而喻。使用数组,而不是object提示:方括号内的内容是数组,大括号内的内容是对象。因此,相应地使用
JSONArray
JSONObject
。感谢您的回答。它起作用了,我觉得需要对api进行更改。 :)
for (int i = 0; i < array.length(); i++) {
    int mycount = (i/2)+1;
    try {