我正在使用Groovy从我们的工件中获取docker映像列表,
我能够以json的形式获取特定docker映像的版本列表,并希望将其放入列表中,这样我就可以将其用作“活动选择参数”。
我不是一个时髦的专家,但是我试图创建一个小脚本,但是却遇到了这个错误:
import java.util.*;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
class base_class {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(new File("file.txt").toPath());
int jobs = Integer.parseInt(lines.get(0));
for (int j = 1; j <= jobs; j++) {
String line = lines.get(j);
String[] integers = line.split(" ");
int result = 0;
for (int i = 0; i!= integers.length; i++) {
result += Integer.parseInt(integers[i]);
}
System.out.println(line + " => " + result);
}
} catch (IOException e) {
System.out.println("File error, " + e);
}
}
}
这是我的脚本:
4
67 8 12
3 6 9 78 6
4 6 13
2 10 41
我要返回的Full Json是:
java.lang.NumberFormatException: For input string: "1.0-SNAPSHOT"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
这是我在操作后得到的结果:
结果:1.0-快照,1.1、1.1-76、1.1-快照,1.2、1.3、1.4、1.4.1、1.4.2、1.4.2发行,1.4.3、1.4.3.1、1.4.4 ,_uploads
我所需要做的就是将结果添加到列表中,所以我将从列表中获取单独的值(如您在我上传的图片中所看到的-这就是现在的样子)
答案 0 :(得分:1)
所以...
String idValue = parsedJson.children.uri // THIS IS A LIST, which you're then converting to a string by assigning it to one.
相反:
List versions = parsedJson.children.uri
或者,如果您愿意:
List versions = parsedJson.children.collect { it.uri[1..-1] } // strips off the leading "/"