该笔记将记录:将数据转化为 JSON 字符串并写入文件以及从文件中读取 JSON 字符串并解析为对象的方法

有关其他 JSON 相关操作(比如禁止 Unicode 转义),参考 Apache Groovy/JSON 笔记

读取:从文件中读取 JSON 字符串,并直接解析为对象

// Parsing json using pipeline
node{
    def dataObject = readJSON file: 'message2.json'
    echo "color: ${dataObject.attachments[0].color}"
}

读取:从文件中读取 JSON 字符串,然后解析为对象

从文件中读取 JSON 字符串,然后解析对象:

// Parsing json using JsonSlurperClassic
import groovy.json.JsonSlurperClassic

node{
	// 从文件中读取 JSON 字符串
    def jsonString = readFile(file: 'message2.json') // '{"k":"1", "n":"2"}'

    // 解析 JSON 字符串为对象
    def dataObject = new JsonSlurperClassic().parseText(jsonString)

    // 从对象中获取参数
    echo "color: ${dataObject.k}"
}

保存:将对象直接写入文件,无需先转化为 JSON 字符串

// Building json from code and write it to file
writeJSON(file: 'message1.json', json: dataObject)

保存:将对象转化 JSON 字符串,然后写入到文件中

import groovy.json.JsonOutput

def jsonString = JsonOutput.toJson(dataObject)
writeFile(file: 'message2.json', text: jsonString) // put string into the file:

// json = JsonOutput.prettyPrint(jsonString)

 

参考文献

Create JSON strings from Groovy variables in Jenkins Pipeline
Parsing and producing JSON