将ObjectNode写入JSON字符串,使用UTF-8字符转换为ASCII
我想把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"}
我怎么能做到这一点?
您应该启用JsonGeneratorfunction,该function控制非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"}
- 如何使用jackson将java对象序列化为xml属性?
- 如何在不重写serialize方法的情况下覆盖特定类的JsonSerializer的isEmpty方法?
- 为什么我无法使用Jackson Java库解包和序列化Java映射?
- 为什么jackson2不承认第一个大写字母,如果领先的骆驼案例字只有一个字母长?
- JsonManagedReference与JsonBackReference
- 如何使用Jackson注释序列化此JSON?
- Jackson JSON生成HTTP状态500,XML工作
- 与JS.fasterxml.jackson JacksonJaxbJsonProvider的@XMLElementWrapper问题
- Spring REST,JSON“无法处理托管/后向引用’defaultReference’”415不支持的媒体类型