https://www.coder.work/article/5616543

首页
📷

java - com.fasterxml.jackson.core.JsonParseException : Unrecognized character escape 'U' (code 85)

标签 java json jackson
我一直在寻找解决方案几个小时但没有成功。我有一个 json 字符串,我尝试将其映射到我的 java 模型,但运行代码时出现上述异常。 JSON字符串:
{"productOptions" : {"2-bruch Kreuzfalz" : "nein"},"uploadData" : {"20682967" : {"mergedFile" : "C:\Users\userName\IdeaProjects\projectName\target\test-classes\com\flyeralarm\tools\kronos\order\integration\input\DE151886742X01_20150727131135.pdf"}}}
为了节省时间和空间,我不会发布 java 模型代码,但如果需要它来解决任务,我会这样做。我怀疑出现错误是因为合并文件的路径包含“C:\Users”,其中反斜杠后跟字符“U”。由于这只是一个嫌疑人,我不太确定该怎么做。我在做某事吗?错误的?我该如何解决这个错误?
更新
如果我是对的, jackson 试图逃避路径中的“U”,那为什么会这样呢?我故意将路径放入引号中。那么为什么 jackson 认为斜线是一种逃避尝试呢?
最佳答案
问题是您问题中的原始 JSON 无效。
根据JSON specification ,字符串的(BNF)语法是:
string ::= "" " chars " chars ::= char char chars char ::= any-Unicode-character-except-"-or-\-or-control-character \" \\ \/ \b \f \n \r \t \u four-hex-digits
在英语中,这意味着字符串中的反斜杠是转义字符,并且后面不能跟大写 U .
If I am right and jackson tries to escape the 'U' in the path, then why is it so?
因为 JSON 规范说它必须这样做。问题在于您对 JSON 的理解,而不是 jackson 的行为。
如果您想在 JSON 字符串中包含文字反斜杠,您需要将它们转义……使用反斜杠;例如
{"mergedFile" : "C:\\Users\\userName\\frobbit.pdf"}
关于java - com.fasterxml.jackson.core.JsonParseException : Unrecognized character escape 'U' (code 85),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699230/

上一篇:java - Maven错误:软件包matlabcontrol不存在

下一篇:java - Android中Action bar setDisplayShowHomeEnabled()出现nullpointerexception

相关文章:
java - Spring-MVC & Android : Server gets a empty JSON string from android
java - 无法使用 Jackson 解析 XML,模型永远不会被填充
java - 使用一个 DTO 对象处理 2 次转换
java - 用于 map 序列化的 Jackson 模块
java - Collections.unmodifiableMap 可以保留原图吗?
java - Jpanel中的双缓冲图像示例
json - 检查结果是否为空字符串
javascript - 使用Jquery Javascript将json文件数据编辑并保存在磁盘上
java - 我应该将时区与 Postgres 和 JDBC 的时间戳分开存储吗?
java - 如何从单个 CallableStatement 获得多个结果集?
©2023 IT工具网