如何在Java中解析3D JSON数组 [英] How to parse a 3d JSON array in java

查看:145
本文介绍了如何在Java中解析3D JSON数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的json数据:

Here is my json data:

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

这是我的android代码:

Here is my android code:

    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中出现以下错误:

I get the following error in my 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)

如果有人可以指出我正确的方向,那将很有帮助.提前致谢.

It would be helpful if someone could pinpoint me to the right direction. Thanks in advance.

推荐答案

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

I believe you want to convert json array string to java array of custom objects

使用 jackson库

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

这篇关于如何在Java中解析3D JSON数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆