Spring逃脱已经逃脱了字符串

nir*_*air 2 java spring json jackson

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

{\"facebook\":\"fb.com\",\"twitter\":\"twitter.com\",\"instagram\":\"\",\"googlePlus\":\"\",\"others\":\"espn.com\"}
Run Code Online (Sandbox Code Playgroud)

但是当我调用GET api时,我在JSON中得到了它

{\\\"facebook\\\":\\\"fb.com\\\",\\\"twitter\\\":\\\"twitter.com\\\",\\\"instagram\\\":\\\"\\\",\\\"googlePlus\\\":\\\"\\\",\\\"others\\\":\\\"espn.com\\\"}
Run Code Online (Sandbox Code Playgroud)

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

Ant*_*neB 6

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

您永远不想存储转义字符(无论是JSON特殊字符,文本中的HTML字符,......),您必须存储未转义的数据以解决您的问题.在显示数据时必须进行转义,而不是在存储数据时进行转义.

由于存在问题而存储转义数据是一种不好的做法,但也因为它会占用数据库中无用的存储空间(这对您来说可能不是一个问题,但会有数百万行).