从Json Response中逃脱\ n和\“

时间:2015-07-14 07:18:20

标签: java json escaping

请帮我解决在json响应中删除\ n和\“的问题。我的代码是:

我使用代码创建了以下json字符串...

String json = new GsonBuilder().serializeNulls().setPrettyPrinting().disableHtmlEscaping().create().toJson(data);

上面创建的Json内容如下所示:

String json = "{\n \"transactionDetail\": {\n \"transactionID\": \"123456\",\n \"transactionTimestamp\": \"2015-07-08T11:44:19Z\",\n \"inLanguage\": \"en-US\",\n \"serviceVersion\": \"1.0\",\n \"additionalDetails\": null\n }} ";

返回javax.ws.rs.core.Response:

return Response.status(Status.OK).entity(json).type(MediaType.APPLICATION_JSON).build();

我看到swagger / postman我的其他客户端的输出,与上面的字符串变量json中出现的内容的方式相同,新行和引号没有被正确替换。如果我放了一个sysout,在命令提示符下,字符串会用适当的换行符和引号整齐地打印出来。如何在swagger或postman中正确地替换新行和双引号的响应。

1 个答案:

答案 0 :(得分:1)

尝试删除setPrettyPrinting()。这将删除所有格式,即\ n。对于生成的字符串,请检查变量' data'的类型。如果'数据'实际上是一个json字符串,你使用Gson序列化它,它将再次转义该json字符串中的所有引号,即双序列化。 '数据'应该是一个像hashmap的java对象,然后你可以序列化为json。如果这些都不起作用,请尝试使用Jackson Json库。