首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将带有UTF-8字符的ObjectNode写入JSON字符串并转义ASCII码

将带有UTF-8字符的ObjectNode写入JSON字符串并转义ASCII码
EN

Stack Overflow用户
提问于 2014-04-17 07:06:27
回答 2查看 60.8K关注 0票数 38

我想把杰克逊的ObjectNode的内容写成一个字符串,其中的UTF-8字符写成了ASCII码(Unicode转义)。

下面是一个示例方法:

代码语言:javascript
复制
private String writeUnicodeString() {
    ObjectMapper mapper = new ObjectMapper();
    ObjectNode node = mapper.getNodeFactory().objectNode();
    node.put("field1", "Maël Hörz");
    return node.toString();
}

默认情况下,这将输出:

代码语言:javascript
复制
{"field1":"Maël Hörz"}

我希望它输出的是:

代码语言:javascript
复制
{"field1":"Ma\u00EBl H\u00F6rz"}

我如何才能做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-17 17:14:39

您应该启用控制非JsonGenerator字符转义的ASCII码功能。下面是一个示例:

代码语言:javascript
复制
    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));

输出为:

代码语言:javascript
复制
{"field1":"Ma\u00EBl H\u00F6rz"}
票数 60
EN

Stack Overflow用户

发布于 2020-01-27 01:45:22

JsonGenerator已弃用,请使用JsonWriteFeature代替它

代码语言:javascript
复制
 mapper.getFactory().configure(JsonWriteFeature.ESCAPE_NON_ASCII.mappedFeature(), true);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23121765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档