2017-01-03 79 views
0

我正在写休息api.All事情设置和woking罚款。 我的控制器:虽然返回字符串,它将额外的斜杠添加到字符串

@RequestMapping(value = "/getDetails", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
public String getDetails(@RequestBody String jsonInput) { 
    LOGGER.info("<------------------------ from Date :" + jsonInput); 
    System.out.println("resp ="+apiService.getDetails(jsonInput)); 
    return apiService.getDetails(jsonInput); 

} 

当我SYSOUT在控制台上的反应,将打印正常的字符串喜欢 -

[{"name": "abc","vendor": "abc df"}] 

,但我得到额外斜线respnse。所有的双引号被\”提前。

"[{\"name\":\"abc\",\"vendor\":\"abc df\"}]" 

请帮帮忙!谢谢。

+1

这是预期行为的'\'转义特殊字符,以便他们可以打印检查一条'map()'对象可能显示类似的结果 –

+0

我发现了一个更微妙的问题,http://stackoverflow.com/questions/3020094/how-should-i-es json –

+0

已经做到了这一点,将字符串转换为json时的对象 Gson gson = new GsonBuilder()。disableHtmlEscaping()。create(); \t \t String jsonRes = gson.toJson(resp); – Samir

回答

0

预计这使该对象可以在以后重建。在‘替换\’逃脱的报价。您可以用空字符串替换“\”:。

@ResponseBody 
public String getDetails(@RequestBody String jsonInput) { 
    LOGGER.info("<------------------------ from Date :" + jsonInput); 
    System.out.println("resp ="+apiService.getBillingDetails(jsonInput)); 
    return apiService.getDetails(jsonInput).replace("\\", ""); 

} 
+0

不。 ( 这是我在打印sysout时正在打印的正常JSON信息。 但是我在postman工具或任何其他rest api中使用了额外的斜杠。 – Samir

相关问题