首页 > 解决方案 > 如何使用 Springboot 在 REST 请求 URL 中将 json 对象作为参数传递

问题描述

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

我检查了这些帖子:

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

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

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

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

object 是一个 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());
 }

我还尝试将其封装为字符串并稍后转换,这也不起作用。

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

- - 编辑 - -

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

标签: javajsonrestspring-boot

解决方案


如果您对or参数使用@RequestParam注释,则映射将填充您在 URL 中指定的所有请求参数。Map<String, String>MultiValueMap<String, String>

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

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


推荐阅读