Json groovy中的迭代器

Json groovy中的迭代器,json,groovy,request,Json,Groovy,Request,我试图创建一个循环来读取,例如,从1000到1000的4200个用户,但是当它到达末尾时,我无法将其剪切。我试过了,但我做不到 我用JAVA编程,但用Groovy我发现结构不同 urlUsers = urlUsers.concat("/1/1000"); List<UserConnectorObject> usersList = null; while({ gesdenResponse = GesdenUtils.sendHttpRequest(urlUs

我试图创建一个循环来读取,例如,从1000到1000的4200个用户,但是当它到达末尾时,我无法将其剪切。我试过了,但我做不到

我用JAVA编程,但用Groovy我发现结构不同

urlUsers = urlUsers.concat("/1/1000");        
List<UserConnectorObject> usersList = null;

while({    

gesdenResponse = GesdenUtils.sendHttpRequest(urlUsers, "LOOKUP", null,
request.getMetaData()?.getLogin(), request.getMetaData()?.getPassword());

log.info("Users data in JSON: "+gesdenResponse.getOutput())

usersList = GesdenUtils.fromJSON(gesdenResponse.getOutput(), GesdenConstants.USER_IDENTITY_KEY);

usersList.size() == 10;
log.info("List size in JSON "+usersList.size());
}()) continue
urlUsers=urlUsers.concat(“/1/1000”);
List usersList=null;
而{
gesdenResponse=GesdenUtils.sendHttpRequest(urlUsers,“LOOKUP”,null,
request.getMetaData()?.getLogin(),request.getMetaData()?.getPassword());
log.info(“JSON中的用户数据:+gesdenResponse.getOutput())
usersList=GesdenUtils.fromJSON(gesdenResponse.getOutput(),GesdenConstants.USER\u IDENTITY\u KEY);
usersList.size()==10;
log.info(“JSON中的列表大小”+usersList.size());
}())继续

看起来您的闭包总是返回falsy,因为没有显式的
返回
,最后计算的语句是对
log.info(String)
的调用,它返回
void

使用显式的
return
或move/delete日志语句。

Groovy有很多,但将常规函数(lang内置函数)和作为参数的api函数分开是至关重要的

采取关闭-没有简单的方式逃脱 如果您想从A用户迭代到B用户,您可以使用,例如

(10..20).each { userNo ->   // Here you will have all 10 iterations
    if ( userNo == 5) {
       return
    }
}
如果在循环体中发生了一些异常情况,并且您不能使用return来转义,因为循环boddy是一个闭包(单独的函数),这个resurn只是退出这个闭包。下一次迭代将在之后进行

使用常规的lang内置循环结构-使用break/continue
这看起来很混乱。您的循环主体似乎处于该状态,而实际的循环主体只是“continue”。while循环应该类似于'while(condition){body}';只要“条件”的计算结果为“true”,循环体就会不断重复。应该导致循环停止的实际条件是什么?@ChrisLong停止循环的条件是它找不到用户,但循环必须读取1000到1000个用户
for (int userNo in 1..10) { // Here you will have only 5 iterations
   if (userNo == 5) {
       break
   }
}