【发布时间】: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 中,
Users是JSONObject,User是JSONArray。 -
@crush OP已经知道答案了,在问题中寻找Solution
-
我的错!我发布为答案
-
对不起@JuanMendes,感谢您的尝试
标签: java xml json jsonobject