spring - 从 spring 控制器返回 JSON 响应以 html 而不是 javascript 中的 JSON
问题描述
我有一个 spring 控制器,它正在向我的脚本中存在的 ajax 调用发送 JSON 响应。我在控制器方法中使用了@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 的形式出现。
请建议我实现这一目标,如果有任何需要,请告诉我。
提前致谢。
解决方案
您可以指定您执行的退货类型:
@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)
推荐阅读
- sql - 根据时差和出现次数选择重复行
- c++ - 如何在 C++ 中使用 [] 运算符获取对象
- 3des - 我可以在 google KMS HSM 中使用 3DES 密钥吗?
- sql - 将 varchar 值 '28,29,30,31,32' 转换为数据类型 smallint 时转换失败
- angular - Angular NgxSpinnerService 无法隐藏
- excel - 当范围达到一定大小时,Excel散点图x轴自动恢复为0
- ios - Swift:通过循环以编程方式在另一个下方添加多个堆栈视图
- python - 如何从带有pynput和winsound的回调函数“继续”for循环?
- microsoft-graph-api - 使用 Graph API 和 Office365 以编程方式创建日历
- msbuild - 如何在 MSBuild 中获取已安装 nuget 的版本?