如何在java中解析3d JSON数组

时间:2016-03-13 18:18:20

标签: java android json

这是我的json数据:

"LM":  [
    [
        ["Fund1", "4"],
        ["Fund3", "41"],
        ["Fund4", "41"],
        ["Fund5", "42"]
    ],
    [
        ["Navs1", "12"],
        ["Navs2", "13"]
    ],
    [
        ["Navs1", "14"],
        ["Navs2, "15"],
        ["Navs3", "16"]
    ]
 ]

这是我的android代码:

    JSONArray LM3DArray = reader.getJSONArray("LM");
    LM = new String[LM3DArray.length()][LM3DArray.length()][LM3DArray.length()];
    for(int i_lm=0;i_lm<LM3DArray.length();i_lm++) {
         for(int j_lm = 0; j_lm < LM3DArray.getJSONArray(i_lm).length(); j_lm ++) {
              for(int k_lm = 0; k_lm < LM3DArray.getJSONArray(j_lm).length(); k_lm ++) {
                 LM[i_lm][j_lm][k_lm] = (String) LM3DArray.getJSONArray(i_lm).getJSONArray(j_lm).get(k_lm);
                  Log.d("Print ", "  LM " + LM[i_lm][j_lm][k_lm]);
              }
         }
    } 

我的logcat中出现以下错误:

    03-13 23:18:27.186 1651-1651/user.com.testapp D/Print:   LM Fund1
    03-13 23:18:27.218 1651-1651/user.com.testapp D/Print:   LM 4
    03-13 23:18:27.219 1651-1651/user.com.testapp W/System.err:   org.json.JSONException: Index 2 out of range [0..2)

如果有人能指出我正确的方向会很有帮助。提前致谢。

1 个答案:

答案 0 :(得分:0)

我相信你想将json数组字符串转换为自定义对象的java数组

使用jackson library

中的ObjectMapper
ObjectMapper mapper = new ObjectMapper();
yourCustomObject[] array = mapper.readValue(json, yourCustomObject[].class)