簡體   English   中英

從 JSON Builder 中的整數中去除引號

[英]Strip out quotes from integer in JSON Builder

我需要運行下面的 groovy 腳本來構建 JSON 模板。 我遇到的問題是模板中的整數用引號括起來。 從變量中去除引號會將其視為字符串。

cat port.txt
1001

這是我的 JSON 構建器腳本

def test = new groovy.json.JsonBuilder()
   test {
    ports new File('ports.txt').readLines()*.trim().collect { p ->
        [name: "$p-tcp", protocol: "TCP", port: "$p", targetPort: "$p"]
    }
}
println test.toPrettyString()

當我運行它時,它會吐出以下內容:

{
"ports": [
    {
        "name": "1001-tcp",
        "protocol": "TCP",
        "port": "1001",
        "targetPort": "1001"
    }
]
}

但是我希望它像這樣去掉端口和目標端口的引號

{
"ports": [
    {
        "name": "1001-tcp",
        "protocol": "TCP",
        "port": 1001,
        "targetPort": 1001
    }
]
}

非常感謝有關如何完成此操作的任何線索。

如果您希望ports.txt文件始終只包含整數,那么您可以在收集之前將讀取的行轉換為整數。 甚至沒有修剪琴弦。 另外,請注意在port:刪除了p周圍的引號port: ant targetPort:

def test = new JsonBuilder()
test {
    ports new File('ports.txt').readLines()*.toInteger().collect { p ->
        [name: "$p-tcp", protocol: "TCP", port: p, targetPort: p]
    }
}
println test.toPrettyString()

輸出:

{
    "ports": [
        {
            "name": "1001-tcp",
            "protocol": "TCP",
            "port": 1001,
            "targetPort": 1001
        }
    ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM