2016-12-06 89 views
2

所以我有这个字符串,我在数据库现在的储蓄:春逃逸已转义字符串

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

但是,当我打电话GET API,我在JSON得到这个

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

这是为什么发生的情况以及如何获取存储在数据库中的完全相同的数据?

回答

5

由于Spring认为\字符是数据的一部分,而不是用于转义",所以当您检索数据时它会再次被转义。

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

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

+0

这种方式它的工作原理!谢谢。 – nirvair

0

获得数据后,将其保存在一个String,然后:

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