我查看了各种答案,但它们没有解决我的问题。我有一个非常具体的客户需求,我无法使用请求的正文。
我检查了这些帖子:
- Trying to use Spring Boot REST to Read JSON String from POST
- Parsing JSON in Spring MVC using Jackson JSON
- Pass JSON Object in Rest web method
注意:我确实对 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
请您参考如下方法:
如果您使用 @RequestParam
对 Map<String, String>
的注释或 MultiValueMap<String, String>
参数, map 将填充您在 URL 中指定的所有请求参数。
@GetMapping("/blah/bar")
public Greeting test(@RequestParam Map<String, String> searchParameters) {
...
}
检查documentation以获得更深入的解释。