如何使用Springboot在REST请求URL中将json对象作为参数传递

时间:2018-11-06 09:00:06

标签: java json rest spring-boot

我查看了各种答案,但它们无法解决我的问题。我有一个非常具体的客户需求,无法使用请求的正文。

我已经检查了这些帖子:

注意:我确实对URI进行了编码。

我遇到各种错误,但非法的HTML字符是其中之一。要求很简单:

编写一个接受以下请求的REST服务

GET /blah/bar?object=object11&object=object2&...

对象是一个POJO,将采用以下JSON格式

{
    "foo": bar,  
    "alpha": {       
        "century": a,
    }
}

很显然,我将阅读对象列表...

我的代码极其简化...如下。

 @RequestMapping(method=RequestMethod.GET, path = "/test")
 public Greeting test(@RequestParam(value = "object", defaultValue = "World") FakePOJO aFilter) {
     return new Greeting(counter.incrementAndGet(), aFilter.toString());
 }

我也尝试过将其封装为String并在以后转换,这也不起作用。

有什么建议吗?这确实应该非常简单,并且hello world spring rest tut应该是一个好的虚拟测试框架。

----编辑----

我发现杰克逊是如何解析json的。我已经解决了,但会写出来。.我将在星期一后提供确切的详细信息。精简版。为了使其适用于单个过滤器和多个过滤器,将其捕获为字符串并使用json slurper

1 个答案:

答案 0 :(得分:1)

如果您对@RequestParamMap<String, String>参数使用MultiValueMap<String, String>注释,则将使用您在URL中指定的所有请求参数填充地图。

 @GetMapping("/blah/bar")
 public Greeting test(@RequestParam Map<String, String> searchParameters) {
     ...
 }

检查documentation以获得更深入的解释。