返回字符串时,它会为字符串添加额外的斜杠

时间:2017-01-03 18:32:17

标签: java json string spring-mvc gson

我正在写一个休息api.All事情已经确定并且很好。 我的控制器:

@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。所有双引号都替换为\&#34;。

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

请帮忙!提前谢谢。

3 个答案:

答案 0 :(得分:0)

这是预期的,因此可以在以后重建对象。 &#34; \&#34;逃避报价。你可以替换&#34; \&#34;用空字符串:

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

}

答案 1 :(得分:0)

使用

AppCenter.Start($"android={Settings.Current.AppCenterAnalyticsAndroid};" +
typeof(Analytics), typeof(Crashes));

这应该删除所有不必要的转义字符。

答案 2 :(得分:0)

我最近遇到了同一问题。我尝试修复了很长时间,终于找到了解决方法以及我做错了什么。 我当时正在使用Jackson库来构造多个json字符串,并将其存储到列表中。

当我尝试将jsonList这样返回给控制器时,尽管在控制台打印时我没有遇到这个问题,但是我的输出用双引号和反斜杠显示在邮递员API上。

当我尝试将列表作为字符串返回给控制器时,解决了我的问题。

jsonString = frameJsonKeyValuePair(header, dataList);
if (jsonString != null)
        jsonStringList.add(jsonString);
}
return jsonStringList.toString();