Java com.fasterxml.jackson.core.JsonParseException:无法识别的字符转义';U';(代码85)

Java com.fasterxml.jackson.core.JsonParseException:无法识别的字符转义';U';(代码85),java,json,jackson,Java,Json,Jackson,我已经寻找了几个小时的解决方案,但没有成功。我有一个json字符串,我试图将它映射到我的java模型,但是运行代码时,我得到了上面的异常。 JSON字符串: {"productOptions" : {"2-bruch Kreuzfalz" : "nein"},"uploadData" : {"20682967" : {"mergedFile" : "C:\Users\userName\IdeaProjects\projectName\target\test-classes\com\flyeral

我已经寻找了几个小时的解决方案,但没有成功。我有一个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”。由于这只是一个嫌疑犯,我不太确定该怎么办。我做错什么了吗?如何解决错误

更新


如果我是对的,而杰克逊试图逃离道路上的“U”,那么为什么会这样呢?我故意将路径放在引号中。那么为什么jackson认为斜杠是一种转义尝试?

只是试图将反斜杠改为普通斜杠,结果成功了。有点奇怪,我被迫只使用一种类型的斜杠,但至少现在它可以工作了。澄清: 改变

进入


完成了任务

问题在于您问题中的原始JSON无效

根据,字符串的(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


如果我是对的,而杰克逊试图逃离道路上的“U”,那么为什么会这样呢

因为JSON规范说它必须这样做。问题在于您对JSON的理解,而不是Jackson的行为

如果要在JSON字符串中包含文字反斜杠,则需要将其转义。。。用反斜杠;e、 g

    {"mergedFile" : "C:\\Users\\userName\\frobbit.pdf"}

我知道这有点晚了,但是有两次回击抛出了相同的错误

有4个反斜杠\\\\works

我在MySQL数据库中有这个记录
“{\'mergedFile\':\'C:\\\\Users\\\\userName\\\\frobbit.pdf\'”}“

嗯,这并不奇怪<代码>\用于转义下一个字母/符号。所以
\U
可能会引起麻烦。要么将
\
更改为
/
(就像这里所做的那样),要么改用
\
。奇怪的是,遇到这个问题时,您没有阅读JSON规范。(好的…没那么奇怪…非常常见的行为:-)只是尝试了双反斜杠->相同的异常。
string ::= "" 
           " chars "
chars  ::= char
           char chars
char   ::= any-Unicode-character-except-"-or-\-or-control-character
           \"
           \\
           \/
           \b
           \f
           \n
           \r
           \t
           \u four-hex-digits 
    {"mergedFile" : "C:\\Users\\userName\\frobbit.pdf"}