【问题标题】:How to get elements of JSONObject?如何获取 JSONObject 的元素?
【发布时间】:2014-06-18 07:55:02
【问题描述】:

我有一个JSONObject,其中包含一些JSONObjects,如下所示:

"statistics": {
    "John": {
      "Age": "22",
      "status": "married"
    },
    "Ross": {
      "Age": "34",
      "status": "divorced"
    }
 }

现在我只知道对象名称(统计信息),不知道元素编号 还是 元素名称,所以,有没有办法解析该对象,以便我可以获取它的元素并处理它(即约翰,罗斯)?

【问题讨论】:

  • 您使用的是什么 JSON 库? (还没有)Java 的标准 JSON API。
  • 它是 org.json,但我没有提到它是为了向人们公开这个问题,以便如果只有一个特定的库可以做到这一点,我会使用它,因为我不介意改变org.json 在这种情况下

标签: java json


【解决方案1】:
JSONObject json = new JSONObject(yourdata);
String statistics = json.getString("statistics");
JSONObject name1 = json.getJSONObject("John");
String ageJohn = name1.getString("Age");

以动态方式获取这些项目:

JSONObject json = new JSONObject(yourdata);
String statistics = json.getString("statistics");

for (Iterator key=json.keys();key.hasNext();) {
    JSONObject name = json.get(key.next());
    //now name contains the firstname, and so on... 
}

【讨论】:

  • 好吧,这行得通,并且给了我每个包含的对象,但是如何获取这些对象的名称?
  • 是的。如示例中所示。字符串键 = key.next(); JSONObject 名称 = json.get(key); Log.d("data", "key="+key+" and value="+json.toString());
  • 我收到错误:Error:(65, 48) java: incompatible type: java.lang.Object cannot be casted to java.lang.String
【解决方案2】:

您没有指定要使用哪个库来表示 JSON 对象。通常有枚举对象属性的方法。例如:

org.json.JSONObject.keys()

返回对象中字符串名称的迭代器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多