【问题标题】:JSONObject JSON array lengthJSONObject JSON 数组长度
【发布时间】:2014-10-18 19:39:44
【问题描述】:

我正在阅读以下 java 中的 XML,并转换为 JSONObject [org.json.JSONObject]。 并附加元数据并以 JSON 格式返回。

问题JSONObject jsonObj = service.getMyData(); // 自定义方法和调用

int count = jsonObj.length(); //长度为1

如何从这个 jsonObj 中获取正确的计数? .在这种情况下,我指的正确计数是 2。 [2 本书]

我尝试了什么?

(1) System.out.println(jsonObj.length()); // 打印 1

API 说:长度() 获取 JSONObject 中存储的键数。

(2) 由于键的数量返回为1,所以尝试下面的没有意义,我还是尝试了 并得到org.json.JSONException: JSONObject["User"] not found.的错误

 System.out.println(jsonObj.getJSONArray("User").length());

(3) 如果我尝试“用户”,即:jsonObj.getJSONArray("Users").length(),它会显示JSONObject["Users"] is not a JSONArray

(4)

JSONObject jsonObj = service.getMyData();
 JSONObject jUsers =  jsonObj.getJSONObject("Users");
 JSONObject jUser =  jUsers.getJSONObject("User");
 System.out.println(jUser.length());

错误:org.json.JSONException: JSONObject["User"] is not a JSONObject.


XML:

<Users>
    <User>
        <Name>Unni</Name>
        <Books>
            <Book>book1</Book>
            <Book>book2</Book>
            <Book>book3</Book>
        </Books>
    </User>
    <User>
        <Name>Ammu</Name>
        <Books>
            <Book>book1</Book>
            <Book>book2</Book>
            <Book>book4</Book>
        </Books>
    </User>
</Users>

JSON:

{
    "Users": {
        "User": [
            {
                "Name": "Unni",
                "Books": {
                    "Book": [
                        "book1",
                        "book2",
                        "book3"
                    ]
                }
            },
            {
                "Name": "Ammu",
                "Books": {
                    "Book": [
                        "book1",
                        "book2",
                        "book4"
                    ]
                }
            }
        ]
    }
}

【问题讨论】:

  • 你把问题和答案放在一起了吗?如果你想分享你的工作来解决这个问题,你应该创建一个答案。我只是浪费时间试图帮助你
  • 在您发布的 JSON 中,UsersJSONObjectUserJSONArray
  • @crush OP已经知道答案了,在问题中寻找Solution
  • 我的错!我发布为答案
  • 对不起@JuanMendes,感谢您的尝试

标签: java xml json jsonobject


【解决方案1】:

JSON 格式,

[] 是 JSONArray

{} 是 JSONObject

在您的帖子中,

  • 用户 - JSONObject
  • 用户 - JSONArray
  • 书籍 - JSONObject
  • 书籍 - JSONArray

Error: org.json.JSONException: JSONObject["User"] is not a JSONObject.

如上所述,试试getJSONArray()

 JSONArray userArray = jUsers.getJSONArray("User");

【讨论】:

    【解决方案2】:

    在检索数组时我必须调用getJSONArray 方法。

    JSONObject jsonObj = service.getMyData();
    JSONObject jUsers =  jsonObj.getJSONObject("Users");
    System.out.println(jUsers.getJSONArray("User").length());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      相关资源
      最近更新 更多