json - 在 JsonBuilder 中关闭 UTF 转义

标签 json servlets groovy

我正在尝试在 groovy servlet 中使用 JsonBuilder(扩展 HttpServlet)
这是一个片段:

 public void doGet(HttpServletRequest request, HttpServletResponse response) {
     response.setContentType('text/plain')
     response.setCharacterEncoding('utf-8')

     def pw = response.getWriter()
     pw.println(new JsonBuilder(['city': 'Москва']))
     pw.println([сity: 'Москва'])
  }

输出是
{"city":"\u041C\u043E\u0441\u043A\u0432\u0430"}
{сity=Москва}

我只是对 JsonBuilder 中的 UTF 转义一无所知,谷歌搜索也没有给我任何有值(value)的东西。所以我想我被卡住了。

有人知道如何以与获取常规 groovy 对象的输出完全相同的形式获取 json 的输出吗?

最佳答案

就 JavaScript 和/或 JSON 而言,它是完全相同的输出。

您可以轻松confirm this yourself :

'Москва' == '\u041c\u043e\u0441\u043a\u0432\u0430'; // true

您看到的是 Unicode string escape sequences , 由 ECMAScript 规范 (JavaScript) 定义并在 JSON 中允许以及。

也就是说,我不会太担心,但如果你坚持禁用字符串转义,你可以使用 JsonOutput对象:
JsonOutput.prettyPrint(json.toString());

关于json - 在 JsonBuilder 中关闭 UTF 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806246/

相关文章:

c++ - 是否有语法类似于 pugixml 的 MIT JSON 解析器?

Groovy 函数调用省略括号

java - "PrintWriter"不被eclipse识别

Java Servlet 作为 HTTP 代理

string - 在 Groovy 中将整数转换为字符串的理想方法是什么

open-source - 我可以学习的 Great Grails 开源应用程序

json - Playframework Scala Specs2 JSON 匹配器

java - Gson反序列化集合

ios - 由于空数组导致应用程序崩溃

java - 如何使用java代码设置html文本字段的值