我正在尝试在 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/