Json groovy中的迭代器
我试图创建一个循环来读取,例如,从1000到1000的4200个用户,但是当它到达末尾时,我无法将其剪切。我试过了,但我做不到 我用JAVA编程,但用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
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
}
}