请帮我解决在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中正确地替换新行和双引号的响应。
答案 0 :(得分:1)
尝试删除setPrettyPrinting()。这将删除所有格式,即\ n。对于生成的字符串,请检查变量' data'的类型。如果'数据'实际上是一个json字符串,你使用Gson序列化它,它将再次转义该json字符串中的所有引号,即双序列化。 '数据'应该是一个像hashmap的java对象,然后你可以序列化为json。如果这些都不起作用,请尝试使用Jackson Json库。