我正在尝试获取一个JSON对象并对其进行迭代。在这种情况下,它应该仅迭代一次,因为我只有一个完整的JSON对象,如果它具有多个,则应该迭代多次。而是它两次显示system.out.println字符串。我不明白这段代码有什么问题?
String str = "{\"userId\":\"1234\",\"businessPrimaryInfo\":{\"53bd2a4\":{\"businessSpecificInfo\":{\"businessType\":\"Manufacturing\",\"tradingPlace\":\"Hyderabad\"}},\"53bd2a4e\":{\"businessSpecificInfo\":{\"businessType\":\"Milling\",\"tradingPlace\":\"Mumbai\"}}}}";
JSONObject jsonObj = new JSONObject(str);
Iterator<String> keys = jsonObj.keys();
// Iterate all the users.
while (keys.hasNext()) {
String key = keys.next();
try {
// If the user has Business primary info as JSON object.
if (jsonObj.has("businessPrimaryInfo")) {
JSONObject jsonBizPrimaryInfo = jsonObj
.getJSONObject("businessPrimaryInfo");
System.out.println("Object is:" + jsonBizPrimaryInfo);
}
} finally {
}
}
请看看,让我知道我做错了什么。
最佳答案
导致循环重复两次的两个键是:userId
和businessPrimaryInfo
。但是您要询问主JSON对象是否具有businessPrimaryInfo
密钥。它具有每次迭代的功能。
您需要做的是检查当前密钥是否为businessPrimaryInfo
。
或者,您可以仅询问主对象是否具有businessPrimaryInfo
键,如果有,则询问该子对象。