我正在尝试获取一个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 {
}
}
请看看,让我知道我在哪里做错了。
答案 0 :(得分:2)
导致循环迭代两次的两个键是:userId
和businessPrimaryInfo
。但是你问主JSON对象是否有businessPrimaryInfo
密钥。每次迭代都有它。
您需要做的是检查当前密钥是否为businessPrimaryInfo
。
或者,您可以询问主要对象是否有businessPrimaryInfo
密钥,如果有,请询问该子对象。