簡體   English   中英

Groovy 讀取 json 文件,添加新鍵:值並寫回 (Jenkins)

[英]Groovy read json-file, add new key : value and write back (Jenkins)

我想從文件中讀取 json 字符串,添加一個新鍵:值並將其寫回文件。 在 Jenkins 構建期間使用 groovy-script。 文件:

{"key1": "value1", "key2": "value2"}

我嘗試了以下方法:

def setValue(String filepath, String key, value){
    String fileContent = readFile(filepath)
 
    Map jsonContent = (Map) new JsonSlurper().parseText(fileContent)
    jsonContent.put("${key}", "${value}")
 
    writeFile(file: filepath, text: JsonOutput.toJson(jsonContent))
}

但出現以下錯誤:

exception: class java.io.NotSerializableException
[Pipeline] echo
message: groovy.json.internal.LazyMap

快速回答

您可以使用這里描述的函數readJsonwriteJson

長答案

Jenkins 不時備份管道的狀態,以便在出現故障時能夠恢復它。 在此備份步驟中,它嘗試序列化管道當前上下文中的每個元素。 NotSerializableException通知您在您的上下文(堆棧或堆)中有一個不可序列化的 object,這會阻止管道被序列化。 因此盡量只使用可序列化的對象。 如果不可能,您可以使用@NonCPS注釋使用此類對象的函數,以告訴 Jenkins 在執行該 function 期間不要嘗試備份管道。

暫無
暫無

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

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