Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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
Java android截取json解析器错误_Java_Android_Json_Android Volley - Fatal编程技术网

Java android截取json解析器错误

Java android截取json解析器错误,java,android,json,android-volley,Java,Android,Json,Android Volley,我的问题是,我的android应用程序没有解析以下JSON数据。如果我使用其他JSON源代码,它会解析为OK。我已经验证了下面的JSON代码,没有问题。它不会抛出任何错误。我不明白为什么 JSON数据如下所示: [ { "Id":"1", "name":"habib", "f":[ { "Id":"1", "taeed":"0", "codkala":"101", "namekala":"سس گوجه فرنگی", "count":"5", "chid":"0" }, { "Id":

我的问题是,我的android应用程序没有解析以下JSON数据。如果我使用其他JSON源代码,它会解析为OK。我已经验证了下面的JSON代码,没有问题。它不会抛出任何错误。我不明白为什么

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"
}
]
}
]
以及我的解析代码:

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;
}
}
公共类语法分析器{
公共静态列表parseFeedAnbar(字符串内容){
试一试{
JSONArray ar=新JSONArray(内容);
List anbarModelList=新建ArrayList();
for(int i=0;i希望您在for循环数组中遗漏了一个小“
i

由于其上一个循环的原因,i大于1,因此它永远不会进入数组的for循环。请更改下面的代码链接

检查下面的代码

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);
        }
for(int ii=0;ii希望您在for循环数组中遗漏了一个小“
i

由于其上一个循环的原因,i大于1,因此它永远不会进入数组的for循环。请更改下面的代码链接

检查下面的代码

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);
        }

用于(int ii=0;i在捕获之后移动return语句,并将创建的AnArmoDelList作为方法的第一行。在try语句之前。检查您的条件您已初始化ii检查条件i。仔细检查您的for循环。我的答案对您有帮助吗?谢谢您的帮助。是的,如果答案正确,请接受帮助您。将return语句移动到catch之后,并将anArmoDelList创建为方法中的第一行。在try语句之前。检查您的条件您已初始化ii检查条件i。仔细检查您的for循环。我的答案对您有帮助吗?谢谢您的帮助。是的,如果答案有帮助,请接受如果它对你有帮助,请接受它作为正确答案。如果它对你有帮助,请接受它作为正确答案。