Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Groovy JSONBuilder在URL中转义斜杠?_Json_Groovy - Fatal编程技术网

为什么Groovy JSONBuilder在URL中转义斜杠?

为什么Groovy JSONBuilder在URL中转义斜杠?,json,groovy,Json,Groovy,我正在编写一个Groovy脚本,需要将JSON发布到URL。我注意到一个问题,JSON生成器将JSON中包含“/”的所有元素都更改为“\/”。有没有办法阻止这一切 这是在使用Groovy1.8。下面是一个简单的示例及其输出: def json = new JsonBuilder() json.reply { result 'http://google.ie/testing' } println json.toString() Output -> {"reply":{"r

我正在编写一个Groovy脚本,需要将JSON发布到URL。我注意到一个问题,JSON生成器将JSON中包含“/”的所有元素都更改为“\/”。有没有办法阻止这一切

这是在使用Groovy1.8。下面是一个简单的示例及其输出:

def json = new JsonBuilder()
    json.reply {
    result 'http://google.ie/testing'
}

println json.toString()

Output -> {"reply":{"result":"http:\/\/google.ie\/testing"}}

谢谢

刚刚看了一眼,
groovy.json.JsonOuput.toJson(string)
将正斜杠编码为
'\\/'

您可以使用
toPrettyString
,但它不会这样做:

def json = new groovy.json.JsonBuilder()

json.reply {
  result 'http://google.ie/testing'
}

assert json.toPrettyString() == '''{
    "reply": {
        "result": "http://google.ie/testing"
    }
}'''
为什么Groovy JSONBuilder在URL中转义斜杠

本节摘录了本主题中的有趣观点:

  • Arne Roomann Kurrik:根据JSON规范,转义“/”是可选的

  • Mike Samuel:solidus是可以转义的字符集之一,因此可以安全地将JSON子字符串
    作为
    嵌入HTML中。(此报价的一半由以下人员提供。)

  • 凯文·布朗:这主要是由于错误的javascript解析器将//视为注释 当它处于一个字符串中时


我想您一定是指grails中的一个类。groovy@Don it is@tim_yates似乎没有提供任何
JsonBuilder
-为什么我没有在1.8文档(上面链接)中看到它?不知道。。。在gapi文件里。。。我现在搞不清楚哪些文件应该是哪个。。。但是api文档缺少一些类。。。我想这需要加入JIRA,或者在用户列表中提及。。。