在Spring MVC中将json对象发送到GET方法

我有一个终点来获取给定表/ data_type中的所有对象.我想在返回的数据上添加一些过滤功能,但我无法弄清楚如何将
JSON对象传递给我的控制器.

我的代码:

    @RequestMapping(value = "/{dataType}.json", method = RequestMethod.GET)
public @ResponseBody List findAll(@PathVariable String dataType, @RequestParam(required=false) Map<String, Object> query) {
}

如何将数据传递给查询参数?我尝试了@ModelAttribute并在请求体中发送了JSON对象,但它没有用.

请帮我解决这个问题

最佳答案 您无法直接在请求参数上发送JSON.来自文档:

When an @RequestParam annotation is used on a Map or
MultiValueMap argument, the map is populated with all
request parameters.

我很确定你需要做一些事情,比如在想要传递给服务器的json结构上调用encodeURIComponent()然后让参数只是一个字符串.在服务器端,您可以使用平针织物或其他东西将字符串转换回您可以操作的内容.

这篇文章可能会提供更多见解:

Spring MVC: Complex object as GET @RequestParam

点赞