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

标签 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());
 }

我也尝试过将它封装为一个字符串并稍后进行转换,但这也不起作用。

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

---- 编辑----

我发现 jackson 是如何解析 json 的。我已经解决了它,但会写下来。我会在周一后提供确切的细节。简洁版本。为了使其适用于单个过滤器和多个过滤器,将其捕获为字符串并使用 json slurper

最佳答案

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

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

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

关于java - 如何使用 Springboot 在 REST 请求 URL 中将 json 对象作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53168628/

相关文章:

c# - .NET 中的 SCIM 反序列化问题

java - Swagger 配置 - 访问 swagger.json 时出现 404

java - Jackson 时间戳错误反序列化

java - 在java中解析JSON

java - 如何获取 MOXy oxml 映射文件以识别静态类

json - 使用 "jq"从 JSON 文件导出所需的输出(按正确顺序排列的字段)

rest - Grails 3应用程序中使用Spring Security Rest对 “refresh_token”请求的403响应

java - 将剩余发布请求映射到对象

java - 该对象是哪个扩展类?

java - 未发送订阅者的 Firebase 指数退避