Object 转为 JSON String
如下代码,可以将对象(List、Map)转化为 Json String:
import groovy.json.JsonOutput println JsonOutput.toJson(dataObject)
但是,如果数据中包含 Unicode 字符,则 toJson() 将对其进行转义。如下示例以及解决方法:
import groovy.json.JsonOutput import groovy.json.JsonGenerator.Options def mapWithUnicode = [key : "好"] println JsonOutput.toJson(mapWithUnicode) // {"key":"\u597d"} println new Options().disableUnicodeEscaping().build().toJson(mapWithUnicode) // {"key":"好"}
但是,JsonGenerator.Options 无法在 Groovy 2.4.x 中使用,会提示 unable to resolve class groovy.json.JsonGenerator.Options 错误。因为 Jenkins Pipeline 中使用的 Groovy 2.4 版本(09/16/2020 Jenkins 2.241),我们必须解决这个问题。
为了解决上述问题,我们可以求助于第三方类库,比如 Gson 库:
@Grab(group='com.google.code.gson', module='gson', version='2.8.2') import com.google.gson.Gson println new Gson().toJson([key : "好"]) // {"key":"好"}
JSON String 转为 Object
import groovy.json.JsonSlurperClassic return new JsonSlurperClassic().parseText(jsonString)
相关文章
「Groovy」- 处理路径地址
「Groovy」- 操作 HTML 文档
「Groovy」- 操作文件(读取、写入)
「Groovy」- 连接数据库(使用 MySQL 演示)
「Apache Groovy」- 连接 SQLite 数据库
「Apache Groovy」- 运行 Shell 命令
「Apache Groovy」- Grape,依赖管理工具(学习笔记)
「Groovy」- 彩色化输出日志
参考文献
Parsing and producing JSON
How to parse JSON in Java - Stack Overflow
json - How to use Groovy JsonOutput.toJson with data encoded with UTF-8? - Stack Overflow