https://www.coder.work/article/5616543
📷
java - com.fasterxml.jackson.core.JsonParseException : Unrecognized character escape 'U' (code 85)
我一直在寻找解决方案几个小时但没有成功。我有一个 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
相关文章:
©2023 IT工具网