Java在JSON字符串中转义引号

时间:2018-05-09 08:57:56

标签: java json escaping

我在数据库中保存了一个JSON字符串(在 Text 类型的列中),我希望服务器的客户端能够通过REST API检索

问题是,一旦后端检索到JSON字符串并存储在 String 对象中,准备好作为响应主体的一部分返回给客户端,Java就会自动转义引号。< / p>

因此,JSON字符串保持为:

{"key1": "value1", "key2": "value2"}

将检索并存储在字符串对象中:

{\"key1\": \"value1\", \"key2\": \"value2\"}

然后这个转义字符串将返回给客户端。我担心的是,它的格式是客户无法使用。

我已经看到有些人使用正则表达式来消除反斜杠,但我不确定它是否可行作为解决方案。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用org.apache.commons.text.StringEscapeUtils类来执行此操作。请参考以下代码

String s = "{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\"}";
s = StringEscapeUtils.unescapeJava(s);
System.out.println(s);

给出

{"key1": "value1", "key2": "value2"}