JsonBuilder.toPrettyString()生成的破JSON

时间:2014-10-01 15:34:07

标签: json groovy

这会生成有效的json:

new JsonBuilder([test:'"']).toString()

这会生成无效的json(无法正常转义):

new JsonBuilder([test:'"']).toPrettyString()

我在环境中运行新JsonBuilder([test:'"']).toPrettyString()时得到的输出(来自一个相当大的play-1.2.6应用程序中的处理程序):{\ n“test”:“”“\ n}这是无效的json。

当我运行Opal从命令行写的脚本时,我得到了有效的JSON(“\”而不是“”“),所以我不确定问题是什么。我使用的是Windows 7 64位(JDK 1.7.0_u67,groovy 2.3.6安装程序),但在我们的所有Linux机器上都遇到了这个问题

注意:这是由于使用旧版本的groovy(1.8.6)引起的,并且自2.3.6起修复。我无法升级,因为它是Play 1.2.6的依赖项。

1 个答案:

答案 0 :(得分:1)

似乎两个输出都有效:

import groovy.json.*

def j1 = new JsonBuilder([test:'"']).toString()
def j2 = new JsonBuilder([test:'"']).toPrettyString()

println j1
println j2

def p1 = new JsonSlurper().parseText(j1)
def p2 = new JsonSlurper().parseText(j2)

assert p1 == p2