2017-01-03 111 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

相關問題