Java 弹簧脱离已脱离的字符串

Java 弹簧脱离已脱离的字符串,java,json,spring,jackson,Java,Json,Spring,Jackson,所以我在数据库中保存了这个字符串: {\"facebook\":\"fb.com\",\"twitter\":\"twitter.com\",\"instagram\":\"\",\"googlePlus\":\"\",\"others\":\"espn.com\"} 但是当我调用getAPI时,我得到的是JSON {\\\"facebook\\\":\\\"fb.com\\\",\\\"twitter\\\":\\\"twitter.com\\\",\\\"instagram\\\":\\\

所以我在数据库中保存了这个字符串:

{\"facebook\":\"fb.com\",\"twitter\":\"twitter.com\",\"instagram\":\"\",\"googlePlus\":\"\",\"others\":\"espn.com\"}
但是当我调用getAPI时,我得到的是JSON

{\\\"facebook\\\":\\\"fb.com\\\",\\\"twitter\\\":\\\"twitter.com\\\",\\\"instagram\\\":\\\"\\\",\\\"googlePlus\\\":\\\"\\\",\\\"others\\\":\\\"espn.com\\\"}

为什么会发生这种情况?我如何才能获得存储在数据库中的完全相同的数据?

当您检索数据时,它会再次转义,因为Spring认为
\
字符是数据的一部分,不用于转义

您永远不想存储转义字符(无论是JSON特殊字符、文本中的HTML字符等),您必须存储未转义的数据来解决问题。转义必须在显示数据时完成,而不是在存储数据时完成


存储转义数据是一种不好的做法,因为您遇到了问题,但也因为它会占用数据库中无用的存储空间(目前对您来说可能不是问题,但会有数百万行)。

获取数据后,将其保存在
字符串中,然后:

 String newJava = str.replace("\\\", "\");

您还可以使用apache的内置
StringEscapeUtils.unescapeJson(字符串输入)
机制获取Json数据。请参阅参考

在将字符串保存到数据库之前,我正在使用它来取消字符串的扫描。