当前位置: 首页 > 面试题库 >

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

邴修远
2023-03-14
问题内容

我想将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"}

我该怎么做?


问题答案:

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

    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"}


 类似资料:
  • 问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str

  • 问题内容: 从我的数据库即时通讯获取以下字符串: 它应该说的是: 我试图像这样将其转换为utf-8: 但是仍然是同样的问题。 有任何想法吗? 问题答案: 使用npm中的utf8模块对字符串进行编码/解码。 安装: 在浏览器中: 在Node.js中: API: 编码: 将任何给定的JavaScript字符串(字符串)编码为UTF-8,并返回该字符串的UTF-8编码版本。如果输入字符串包含非标量值(即

  • 如何使用Jackson从字符串创建ObjectNode? 我试过: 但是得到 线程maincom.fasterxml.jackson.databind.JsonMappingException中的异常:属性type的冲突setter定义:jdk.nashorn.internal.ir.Symbol#setType(1个参数)vsjdk.nashorn.internal.ir.Symbol#setT

  • 我有一些代码如下所示。 该项目的标准字符集是“UTF-8”。并且所有消息都很好地打印为UTF-8。我猜把UTF-8字符串放入java.lang.Object是压垮UTF-8的原因。 我该怎么解决这个? 我已经试过了: =在上块中= =配置= 将消息转换器添加到root-context.xml中,如下所示。 ===*条件=== 感谢阅读和分享我的问题:D

  • 问题内容: 如何在Swift中将字符串转换为Unicode(UTF-8)字符串? 在Objective中,我可以这样写: 如何在Swift中做类似的事情? 问题答案: 使用此代码, 希望对您有所帮助

  • 问题内容: 如何使用Android解码utf-8字符串?我尝试使用此命令,但输出与输入相同: 问题答案: 字符串不需要编码。它只是一个Unicode字符序列。 要将字符串转换为字节序列时需要进行 编码 。您选择的字符集(UTF-8,cp1255等)确定了Character-> Byte映射。请注意,字符不必转换为单个字节。在大多数字符集中,大多数Unicode字符都转换为至少两个字节。 字符串的编