Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Boot中的JSON主体';s@RequestBody_Java_Spring Boot - Fatal编程技术网

Java Spring Boot中的JSON主体';s@RequestBody

Java Spring Boot中的JSON主体';s@RequestBody,java,spring-boot,Java,Spring Boot,我有一个spring引导应用程序,它在Http请求主体中接受JSON字符串。我把控制器做成这样 { "name" : "ABC", "age" : 20 } @RequestMapping(method=RequestMapping.POST,consumes=MediaType.APPLICATION\u JSON\u VALUE,VALUE=“/foo”) 公共void acceptPost(@RequestBody TestModel t)

我有一个spring引导应用程序,它在Http请求主体中接受JSON字符串。我把控制器做成这样

    {
        "name" : "ABC",
        "age" : 20
    }
@RequestMapping(method=RequestMapping.POST,consumes=MediaType.APPLICATION\u JSON\u VALUE,VALUE=“/foo”)
公共void acceptPost(@RequestBody TestModel t){
....
}
我的JSON字符串如下

    {
        "name" : "ABC",
        "age" : 20
    }
Spring Boot能够将请求主体封送到
TestModel
POJO中。但我有兴趣做以下工作

@RequestMapping(method=RequestMapping.POST,consumes=MediaType.APPLICATION\u JSON\u VALUE,VALUE=“/foo”)
public void acceptPost(字符串名称,整数期限){
....
}
name
age
作为参数输入,没有中间对象来保存传递的JSON字符串


在Spring Boot中,是否有任何注释可以使用,或者有一种方法可以覆盖现有的接口或注释,以帮助我获得所需的内容?

您所采用的方法是正确的。这是一个明智的方法,实际上也是一种类型安全的方法。您可以使用
@PostMapping
注释(它还支持
使用
属性),而不是
@RequestMapping

,这样做是正确的。这是一个明智的方法,实际上也是一种类型安全的方法。您可以使用
@PostMapping
注释(它也支持
使用
属性),而不是
@RequestMapping

否,如果它是正常的查询/路径参数或请求体,那么这种映射是可能的

JSON不是“通用”HTTP传输对象,因此任何框架都不会理想地支持String-in-a-JSON到String和Integer-in-a-JSON到Integer的开箱即用映射


您可以使用一个类来获取反序列化的JSON对象,也可以自己使用查询/路径参数或只是请求主体。

否,如果它是普通的查询/路径参数或请求主体,那么这种映射是可能的

JSON不是“通用”HTTP传输对象,因此任何框架都不会理想地支持String-in-a-JSON到String和Integer-in-a-JSON到Integer的开箱即用映射


您可以使用一个类来获取反序列化的JSON对象,也可以自己使用query/path参数或只是请求主体。

我同意大家的看法,但如果您不想创建pojo类,请将其作为JSON字符串@RequestBody字符串JSON获取


稍后使用ObjecMapper将其解析为映射,然后使用键获取值。这不是必需的,但这是实现它的另一种方式。

我同意大家的意见,但如果您不想创建pojo类,请将其作为JSON字符串@RequestBody字符串JSON获取


稍后使用ObjecMapper将其解析为映射,然后使用键获取值。这不是必需的,但这是实现它的另一种方法。

没有现成的方法来做您想做的事情。您需要编写自定义方法参数处理程序。谢谢您的建议。我按照你的建议做了,而且成功了。没有现成的方法来做你想做的事。您需要编写自定义方法参数处理程序。谢谢您的建议。我按照你的建议做了,并且成功了。我遵循了@shazin在评论中的建议。它奏效了。我遵循了@shazin在评论中的建议。成功了。