【发布时间】:2026-01-19 12:55:02
【问题描述】:
我有一个带有 SUBSTITUTE () utf-8 字符的 json 字符串。当我尝试使用 jackson 将 json 字符串转换为 java 对象时出现解析异常。你能告诉我如何编码和解码 utf-8 字符吗?
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(jsonString, MY_DOMAIN_OBJECT.class);
jsonString:
{"studentId":"753253-2274", "information":[{"key":"1","value":"Get alerts on your phone(SUBSTITUTE character is present here. Unable to paste it)To subscribe"}]}
错误:
Illegal unquoted character ((CTRL-CHAR, code 26)): has to be escaped using backslash to be included in string value
【问题讨论】:
-
你能发布实际的错误吗?
-
您是否确认确实是
\u001A引起了麻烦?难道不是你的域类和 JSON 结构之间有些不匹配吗? -
更新了错误代码。它不是不匹配的问题。 @Mena
-
啊,当然。这是一个控制角色。在 JSON 语法中,您必须对其进行转义。错误文本实际上告诉您,虽然从技术上讲不是反斜杠,而是使用完整的 unicode 转义序列。
-
你试过this吗?看来问题是一样的。
标签: java json jackson jsonparser