java - 使用 UTF-8 字符将 ObjectNode 写入 JSON 字符串以转义 ASCII

标签 java json unicode utf-8 jackson

我想将 Jackson 的 ObjectNode 的内容写入一个字符串,其中 UTF-8 字符写为 ASCII(Unicode 转义)。

这是一个示例方法:

private String writeUnicodeString() {
    ObjectMapper mapper = new ObjectMapper();
    ObjectNode node = mapper.getNodeFactory().objectNode();
    node.put("field1", "Maël Hörz");
    return node.toString();
}

默认情况下,输出:

{"field1":"Maël Hörz"}

我希望它输出的是:

{"field1":"Ma\u00EBl H\u00F6rz"}

我怎样才能做到这一点?

最佳答案

您应该启用控制非 ASCII 字符转义的 JsonGenerator 功能。这是一个例子:

    ObjectMapper mapper = new ObjectMapper();
    mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
    ObjectNode node = mapper.getNodeFactory().objectNode();
    node.put("field1", "Maël Hörz");
    System.out.println(mapper.writeValueAsString(node));

输出是:

{"field1":"Ma\u00EBl H\u00F6rz"}

关于java - 使用 UTF-8 字符将 ObjectNode 写入 JSON 字符串以转义 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121765/

相关文章:

java - 如何避免在构造函数中使用 this

ios - 获取当前月份和年份并传递给 API iOS Swift?

perl - Perl 中的 Windows-1252 到 unicode 转换

python - 抓取网页时如何处理未知编码?

java - Google+ API 是否有每小时费率限制?

java - 存储与保存生成字符串

java - Android:将编辑文本字段链接到按钮

json - 如何删除 Coldfusion JSON 中的 �?

python - 如何修改 django REST 框架中的 request.data

python - Unicode 该死的 : detwingle crashes on a website