java - 如何使用 Springboot 在 REST 请求 URL 中将 json 对象作为参数传递
问题描述
我查看了各种答案,但它们并没有解决我的问题。我有一个非常具体的客户需求,我无法使用请求的正文。
我检查了这些帖子:
- 尝试使用 Spring Boot REST 从 POST 读取 JSON 字符串
- 在 Spring MVC 中使用 Jackson JSON 解析 JSON
- 在 Rest web 方法中传递 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
解决方案
如果您对or参数使用@RequestParam
注释,则映射将填充您在 URL 中指定的所有请求参数。Map<String, String>
MultiValueMap<String, String>
@GetMapping("/blah/bar")
public Greeting test(@RequestParam Map<String, String> searchParameters) {
...
}
检查文档以获得更深入的解释。
推荐阅读
- sql - 减去 2 个选择语句
- ios - indexPath.row 重新加载后从 1 而不是 0 开始
- mysql - 如何在 mysql 的 Azure 数据库服务器中使用 init_connect
- javascript - 如何使用 jQuery tablesorter 对翻译后的日期进行排序
- angular - .net Core 3 上传文件不起作用,Request.Form.Files 为空
- java - 在主类中使用 maven
- javascript - JS - touchstart / end 事件在 iOS 上不起作用
- python - Python - 如何解决 OSError:[Errno 22] 无效参数
- google-analytics - 如何按用户 ID(作为自定义维度)按天获取会话?
- github - Github 风格的降价中具有任意位置的表头