简体   繁体   English

Android Volley JSON解析器错误

[英]android volley json parser error

My problem is that my android app does not parse the following JSON data. 我的问题是我的Android应用程序无法解析以下JSON数据。 If I use other JSON sources it parses OK. 如果我使用其他JSON来源,则解析为OK。 I've validated the JSON bellow and there were no problems. 我已经验证了JSON波纹管,没有问题。 It doesn't throw any error. 它不会引发任何错误。 I can't understand why. 我不明白为什么。

JSON data looks like this: JSON数据如下所示:

    [
{
"Id":"1",
"name":"habib",
"f":[
{
"Id":"1",
"taeed":"0",
"codkala":"101",
"namekala":"سس گوجه فرنگی",
"count":"5",
"chid":"0"
},
{
"Id":"1",
"taeed":"0",
"codkala":"102",
"namekala":"ماست موسیر",
"count":"1",
"chid":"0"
},
{
"Id":"1",
"taeed":"0",
"codkala":"103",
"namekala":"شیر گم چرب",
"count":"3",
"chid":"0"
}
]
},
{
"Id":"2",
"name":"habib",
"f":[
{
"Id":"2",
"taeed":"0",
"codkala":"101",
"namekala":"سس گوجه فرنگی",
"count":"5",
"chid":"0"
},
{
"Id":"2",
"taeed":"0",
"codkala":"102",
"namekala":"ماست موسیر",
"count":"1",
"chid":"0"
},
{
"Id":"2",
"taeed":"0",
"codkala":"103",
"namekala":"شیر گم چرب",
"count":"3",
"chid":"0"
}
]
}
]

And my code for parsing: 而我的解析代码:

public class AnbarParser {
public static List<AnbarModel> parseFeedAnbar(String content){
    try {

        JSONArray ar = new JSONArray(content);
        List<AnbarModel> anbarModelList = new ArrayList<>();
        for (int i = 0; i<1; i++){
            JSONObject obj = ar.getJSONObject(i);

            AnbarModel anbarModel = new AnbarModel();
            anbarModel.setId(obj.getString("Id"));
            anbarModel.setName(obj.getString("name"));

            List<Faktor> faktorlist = new ArrayList<>();

            JSONArray arr2 = obj.getJSONArray("f");
            for (int ii = 0; i<1; ii++){
                JSONObject obj2 = arr2.getJSONObject(i);
                Faktor faktor = new Faktor();
                faktor.setId(obj2.getString("Id"));
                faktor.setTaeed(obj2.getString("taeed"));
                faktor.setCodkala(obj2.getString("codkala"));
                faktor.setNamekala(obj2.getString("namekala"));
                faktor.setCount(obj2.getString("count"));
                faktor.setChid(obj2.getString("chid"));
                faktorlist.add(faktor);
            }
            anbarModel.setFaktor(faktorlist);
            anbarModelList.add(anbarModel);



        }

        return anbarModelList;



    }catch (JSONException e){
        e.printStackTrace();
        return null;

    }
    //return null;
}
}

Hope you missed a small " i " in you array for loop. 希望您在循环数组中错过了一个小的“ i ”。

Since i is greater than 1 because of its previous loop, it will never come inside the for loop for array. 由于i由于其先前的循环而大于1,因此它将永远不会进入数组的for循环内。 change your code link below. 更改下面的代码链接。

check the below code. 检查以下代码。

for (int ii = 0; ii<1; ii++){ // here is the only change. add ii instead of i
            JSONObject obj2 = arr2.getJSONObject(ii); // here also replace your i with ii
            Faktor faktor = new Faktor();
            faktor.setId(obj2.getString("Id"));
            faktor.setTaeed(obj2.getString("taeed"));
            faktor.setCodkala(obj2.getString("codkala"));
            faktor.setNamekala(obj2.getString("namekala"));
            faktor.setCount(obj2.getString("count"));
            faktor.setChid(obj2.getString("chid"));
            faktorlist.add(faktor);
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM