为啥这么调用会终止循环 for (int i = 0; i < newJsonArray.size(); i++) { for (int rIndex = 0;rIndex<roleOperatorPermission.size();rIndex++) { if (newJsonArray.getJSONObject(i).get("children") != null && newJsonArray.getJSONObject(i).get("children") instanceof JSONArray && newJsonArray.getJSONObject(i).getJSONArray("children").size() > 0) { JSONArray resultNode = findJsonNOde(newJsonArray.getJSONObject(i).getJSONArray("children"), roleOperatorPermission.get(rIndex).getCode()); if (resultNode != null) { newJsonArray.getJSONObject(i).put("children", resultNode); } } } }
时间: 2024-02-15 10:27:28 浏览: 54
这段代码中的循环语句并不会终止循环,除非其中的 `findJsonNOde` 方法返回了一个空的 JSON 数组。
该方法的返回值是一个包含指定名称的 JSON 对象及其子对象的 JSON 数组。如果在 JSON 数组中没有找到指定名称的对象,该方法将返回一个空的 JSON 数组。在这种情况下,外层循环将继续运行,直到处理完所有的 JSON 对象。
因此,如果在内层循环中调用 `findJsonNOde` 方法时返回了空的 JSON 数组,那么该对象的 "children" 属性将被设置为一个空的 JSON 数组,这可能会导致外层循环处理该对象之后,进入下一个对象的处理。
阅读全文