获取Json并将其转换为列表[Groovy]

时间:2018-10-24 17:58:17

标签: groovy

我正在使用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

我所需要做的就是将结果添加到列表中,所以我将从列表中获取单独的值(如您在我上传的图片中所看到的-这就是现在的样子)

enter image description here

1 个答案:

答案 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 "/"