如何在andorid

时间:2016-04-04 11:37:32

标签: android json

如何从网上获取此Json密钥和值。这是我的代码,但我无法从第二次迭代中得到这个。有人可以帮助我做到这一点。

Json回复:

    "attributes": [
  {
    "main_id": "3",
    "Color": [
      {
        "id": "60",
        "text": "46( +$0.00)"
      }
    ]
  },
  {
    "main_id": "21",
    "dede": [
      {
        "id": "73",
        "text": "baba( +$0.00)"
      }
    ]
  }
]

这是我解析值的android代码:

JSONArray jsonArrayAttributes = jsonObj.getJSONArray("attributes");
    for (int i = 0; i < jsonArrayAttributes.length(); i++) {

        JSONObject jsonObject1 = jsonArrayAttributes.getJSONObject(i);
        Iterator iteratorKey = jsonObject1.keys();
        String strAttrId = (String) iteratorKey.next();
        String strAttrName = (String) iteratorKey.next();

        JSONArray jsonArrayName = jsonObject1.getJSONArray(strAttrName);

        for (int j = 0; j < jsonArrayName.length(); j++) {
            JSONObject jsonObjName = jsonArrayName.getJSONObject(j);
        }
    }

1 个答案:

答案 0 :(得分:2)

你必须像

那样改变你的代码
JSONArray jsonArrayAttributes = jsonObj.getJSONArray("attributes");

        for (int i = 0; i < jsonArrayAttributes.length(); i++) {

            JSONObject jsonObject1 = jsonArrayAttributes.getJSONObject(i);
            Iterator it = jsonObject1.keys();

            boolean arrFlag = false;
            while (it.hasNext()) {
                String key = (String) it.next();
                if (!arrFlag) {
                    String value = jsonObject1.getString(key);
                    Log.i("Key:Value", "" + key + ":" + value);
                    arrFlag = true;
                } else {
                    JSONArray value = jsonObject1.getJSONArray(key);
                    Log.i("Key:Value", "" + key + ":" + value);
                    arrFlag = false;
                }
            }
        }

它完美运作。

你将获得所有钥匙和价值。