(Groovy 版本:2.4.16 JVM:11.0.8 供应商:Debian 操作系统:Linux)
我的 bash shell 脚本输出一个如下所示的 JSON 字符串(没有“sout:”):
sout: {"vms":["Jenkins","UbuntuRunner"]}
我将其用作此 Groovy 代码的输入:
def sout = new StringBuilder()
def serr = new StringBuilder()
// translate JSON to List
def soutJson = new JsonSlurper().parseText(sout.toString())
log.append("sout: " + sout + "\n")
log.append("serr: " + serr + "\n")
log.append("soutJson: " + soutJson + "\n")
def List myList = soutJson.vms
log.append("myList: " + myList + "\n")
log.append("myList[0]: " + myList[0] + "\n")
log.append("myList[1]: " + myList[1] + "\n")
log.append("myList.size(): " + myList.size() + "\n")
我希望输出包含引号,如下所示:
soutJson: ["vms":["Jenkins", "UbuntuRunner"]]
myList: ["Jenkins", "UbuntuRunner"]
myList[0]: "Jenkins"
myList[1]: "UbuntuRunner"
myList.size(): 2
但实际输出的是缺少引号:
soutJson: [vms:[Jenkins, UbuntuRunner]]
myList: [Jenkins, UbuntuRunner]
myList[0]: Jenkins
myList[1]: UbuntuRunner
myList.size(): 2
我发现打印列表或列表元素的每个示例都包含引号。我不在乎这些是单引号还是双引号,但是如果没有引号,以后将 myList 作为输入的代码将不起作用。而且不能是字符串,必须是List。
如何保留引号?