在JSONArray中解析JSONArray

时间:2013-03-28 19:27:41

标签: java android json gson

我正在使用Gson来解析json响应。我需要在JsonArray中解析JSONArry ..

我的回答是......

{
"message": "Retreive sucessfully",
"flag": true,
"data": {
    "myArray1": [[{
        "xyz": "1400.0",
        "abc": "O",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "J",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "I",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "D",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "C",
        "mnp": "leeper"
    }],
    [{
        "xyz": "1400.0",
        "abc": "M",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "L",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "G",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "F",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "A",
        "mnp": "leeper"
    }]],
    "myArray2": [[{
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    }],
    [{
        "xyz": "1400.0",
        "abc": "LS5",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "LS4",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "LS3",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "LS2",
        "mnp": "leeper"
    },
    {
        "xyz": "1400.0",
        "abc": "LS1",
        "mnp": "leeper"
    }],
    [{
        "xyz": "1000.0",
        "abc": "19",
        "mnp": "taes"
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    }],
    [{
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "20",
        "mnp": "taes"
    },
    {
        "xyz": "1000.0",
        "abc": "6",
        "mnp": "taes"
    },
    {
        "xyz": "1000.0",
        "abc": "3",
        "mnp": "taes"
    },
    {
        "xyz": "1000.0",
        "abc": "2",
        "mnp": "taes"
    }],
    [{
        "xyz": "1000.0",
        "abc": "notaes",
        "mnp": null
    },
    {
        "xyz": "1000.0",
        "abc": "1",
        "mnp": "taes"
    }]]
},
"code": "99"
}

我的班级应该是什么?我这样做了......

public class MyLayout {
public String message;
public boolean flag;
public Data data;
public String commandName;
public String code;

public class Data {
    public ArrayList<MyClass> myArray1 = new ArrayList<MyLayout.MyClass>();
    public ArrayList<MyClass> myArray2 = new ArrayList<MyLayout.MyClass>();
}

public class MyClass {
    public String abc;
    public String xyz;
    public String mnp;
}

}

它没有用?

修改

我的上方MyLayout在响应如下时有用..但myArray项还包含JSONArray

{
"message": "Retreive sucessfully",
"flag": true,
"data": {
"myArray1": [{
    "xyz": "1400.0",
    "abc": "O",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "J",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "I",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "D",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "C",
    "mnp": "leeper"
}],
"myArray2": [{
    "xyz": "1400.0",
    "abc": "LS5",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "LS4",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "LS3",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "LS2",
    "mnp": "leeper"
},
{
    "xyz": "1400.0",
    "abc": "LS1",
    "mnp": "leeper"
}]
},
"code": "99"
}

1 个答案:

答案 0 :(得分:2)

myArray1myArray2是数组数组,因此您需要修改Data,如下所示:

public class Data {
  public List<List<MyClass>> myArray1 = ...
  public List<List<MyClass>> myArray2 = ...
}