Android解析JSON - 需要帮助

时间:2014-07-30 16:39:06

标签: android json

我试图解析这个json数据:

{
  "KEY_ONE_TEST": {
    "0": {
      "Destination": [
        "The Future"
      ],
      "Id": [
        "2"
      ]
    },
    "1": {
      "Destination": [
        "Milky way"
      ],
      "Id": [
        "2"
      ],
      "VehicleType": "T"
    }
  }
}

对于我的生活,不能解决如何去做的事情。我想它的一个json对象有一个名为KEY_ONE_TEST的变量,它是一个json数组。

我可以阅读"顶级"东西:

JSONObject stop = new JSONObject(strData);
while(stop.keys().hasNext()) {
  String id = stop.keys().next(); // gives KEY_ONE_TEST

但是我无法弄清楚如何从id中获取数组。

有人帮忙吗?

添加评论:我也试图做一般性的事情,因此我无法使用硬编码名称,例如' KEY_ONE_TEST' 0' 0' ' 1'等

TIA。

3 个答案:

答案 0 :(得分:0)

您可以通过以下方式访问ID:

JSONObject stop = new JSONObject(strData);
JSONObject keyOneTest = stop.getJSONObject("KEY_ONE_TEST");
JSONObject zeroKey = keyOneTest.getJSONObject("0");
JSONArray idZeroKey = zeroKey.getJSONArray("Id");

答案 1 :(得分:0)

它取决于您的JSON结构,例如下面的代码允许使用您的结构导航并获取键和值:

    JSONObject jsonObject = new JSONObject("your JSON");

    JSONObject jsonObjectMain = jsonObject.getJSONObject("KEY_ONE_TEST");
    System.out.println("jsonObjectMain >> " + jsonObjectMain.toString());

    Iterator<String> itMain = jsonObjectMain.keys();

    while (itMain.hasNext()) {
        String keyMain = itMain.next();
        System.out.println("itMain.key >> " + keyMain);

        JSONObject jsonObjectSecond = jsonObjectMain.getJSONObject(keyMain);
        Iterator<String> itSecond = jsonObjectSecond.keys();
        while (itSecond.hasNext()) {
            String keySecond = itSecond.next();
            System.out.println("itSecond.key >> " + keySecond);
            System.out.println("itSecond.value >> " + jsonObjectSecond.get(keySecond));

        }

    } 
试试吧!

答案 2 :(得分:0)

让后端开发人员生成更多有意义的完整数据表示。我现在不必绕过对象和密钥迭代,我现在只需使用数组来处理关键数据。