2017-01-03 23 views
0

私は残りのAPIを書いています。すべてのものが設定されていて、うまく動作しています。 私のコントローラ:私は、コンソール上での応答をSYSOUTとき文字列を返すときに、文字列に余分なスラッシュを追加します

@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); 

} 

それは次のように通常の文字列を出力します -

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

しかし、私は、余分なスラッシュでrespnseを取得します。すべての二重引用符が\で置き換えられる」。

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

助けてください!。事前に感謝を。

+1

これは期待される動作である、彼らは印刷することができるように '\は' '地図()'オブジェクトが同様の結果を明らかにする可能性がある検査の特殊文字をエスケープ –

+0

。。。私はより微妙な質問を見つけました。http://stackoverflow.com/questions/3020094/how-should-i-esケープストリングイン・ジャーソン –

+0

文字列をオブジェクトに変換してjsonに変換すると、既にこれが行われています Gson gson = new GsonBuilder()。disableHtmlEscaping()。create(); \t \t文字列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

いいえ動作しません。 ( これは、通常のJSONを印刷するsysoutを印刷するときに私が言っているものです。 しかし、私はPostmanツールや他の残りのAPIでスラッシュを追加しています。 – Samir

関連する問題