码迷,mamicode.com
首页 > Web开发 > 详细

「Groovy」- 处理 Object 与 JSON String 之间的转换 @20210129

时间:2021-01-30 12:04:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tac   over   and   line   提示   rod   groov   无法   content   

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)

参考文献

WikiNotes/处理 Object 与 JSON String 之间的转换
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


「Groovy」- 处理 Object 与 JSON String 之间的转换 @20210129

标签:tac   over   and   line   提示   rod   groov   无法   content   

原文地址:https://www.cnblogs.com/k4nz/p/14346649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!