[英]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
您可以使用這里描述的函數readJson
和writeJson
。
Jenkins 不時備份管道的狀態,以便在出現故障時能夠恢復它。 在此備份步驟中,它嘗試序列化管道當前上下文中的每個元素。 NotSerializableException
通知您在您的上下文(堆棧或堆)中有一個不可序列化的 object,這會阻止管道被序列化。 因此盡量只使用可序列化的對象。 如果不可能,您可以使用@NonCPS
注釋使用此類對象的函數,以告訴 Jenkins 在執行該 function 期間不要嘗試備份管道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.