我有一个弹簧控制器,它将JSON响应发送到我脚本中的ajax调用。我在控制器方法中使用了@ResponseBody,它通过ajax调用直接发送JSON作为响应。
当我添加JsonSanitizer.sanitize(myJsonString)之后,它在ajax响应中返回为html而不是JSON。因此,我现在无法解析json对象。
示例代码:
@ResponseBody
@RequestMapping(value="/getJson" method="GET")
public String fetchJsonDetails(MyObj obj) {
//DB call based on my object..
//Previously added
//return new Gson().toJson(obj);
//New line added now
return JsonSanitizer.sanitize(new Gson().toJson(obj));
}
在上面添加的新行之后,响应将以html而不是JSON形式出现。
请建议我做到这一点,如果需要进一步的话,请告诉我。
提前致谢。
答案 0 :(得分:0)
您可以指定您的回报类型:
@ResponseBody
@GetMapping(value="/getJson", produces="application/json")
public String fetchJsonDetails(MyObj obj) {
// DB Call
return JsonSanitizer.sanitize(new Gson().toJson(obj));
}
您也可以使用
import org.springframework.http.MediaType;
...
@GetMapping(value="/getJson", produces=MediaType.APPLICATION_JSON_VALUE)