我正在尝试获取一个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 {

    }

}


请看看,让我知道我做错了什么。

最佳答案

导致循环重复两次的两个键是:userIdbusinessPrimaryInfo。但是您要询问主JSON对象是否具有businessPrimaryInfo密钥。它具有每次迭代的功能。

您需要做的是检查当前密钥是否为businessPrimaryInfo

或者,您可以仅询问主对象是否具有businessPrimaryInfo键,如果有,则询问该子对象。

08-28 19:49