You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy中无Unicode转义地格式化JSON到文件?

Groovy原生实现JSON格式化输出且不转义Unicode字符

可行方案

通过自定义JsonGenerator配置禁用Unicode转义,再结合JsonOutput.prettyPrint实现格式化,无需额外依赖:

// 配置JSON生成器,禁用Unicode转义
def jsonGenerator = new JsonGenerator.Options()
    .disableUnicodeEscaping()
    .build()

// 生成无转义的紧凑JSON字符串
def compactJson = jsonGenerator.toJson([name: 'Johan Söder', age: 42])

// 格式化JSON为带缩进的美观格式
def prettyJson = JsonOutput.prettyPrint(compactJson)

// 写入文件,指定UTF-8编码确保字符正确存储
new File("data.json").write(prettyJson, "UTF-8")

输出结果

生成的data.json内容如下,Unicode字符无转义且格式规范:

{
    "name": "Johan Söder",
    "age": 42
}

为什么之前的尝试失败

  1. JsonOutput.toJson默认行为:该方法会自动转义Unicode字符,后续的prettyPrint仅处理格式,不会还原已转义的字符。
  2. 单独使用JsonGenerator:仅能生成紧凑格式的JSON,无缩进效果;若之前组合时出现转义或格式混乱,大概率是错误地先通过JsonOutput.toJson生成了带转义的字符串,再进行处理导致的。

内容的提问来源于stack exchange,提问作者Skillzore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:52:13