解析具有动态密钥的JSONObject [英] Parsing JSONObject having dynamic key

查看:57
本文介绍了解析具有动态密钥的JSONObject的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从服务器收到以下JSON作为响应.起初,我认为这是无效的JSON,但在对其进行验证之后,它似乎是正确的:

I have following JSON as response from my server. At first, I thought, it was invalid JSON but after validating it, it seems to be correct:

JOSN: {
    "category": {
        "1": "World",
        "2": "Politics",
        "3": "Economy",
        "4": "Sports",
        "5": "Cricket",
        "6": "General",
        "7": "Business",
        "8": "Services",
        "9": "Law & Order",
        "10": "Entertainment"
    }
}

验证:

如果是JSONArray,我将使用SO中的以下解决方案对其进行解析:

If it would have been JSONArray, I would have parsed it with this solution from SO: How to parse a JSON without key in android?

但是如何解析这里的JSON?

But how do I parse the JSON I have here?

任何帮助表示赞赏.

推荐答案

但是如何解析这里的JSON?

But how do I parse the JSON I have here?

如果category JSONObject中的键是动态的,则使用JSONObject.keys()获取Iterator以获取值,如下所示:

if keys inside category JSONObject is dynamic then use JSONObject.keys() to get Iterator for getting values as:

JSONObject mainJSONObj=new JSONObject(<json_string>);
// get category JSONObject from mainJSONObj
JSONObject categoryJSONObj=mainJSONObj.getJSONObject("category");

// get all keys from categoryJSONObj

Iterator<String> iterator = categoryJSONObj.keys();
  while (iterator.hasNext()) {
    String key = iterator.next();
    Log.i("TAG","key:"+key +"--Value::"+categoryJSONObj.optString(key);
  }

这篇关于解析具有动态密钥的JSONObject的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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