在Post方法中使用Postman发送嵌套的json对象到Spring REST API

问题描述:

我想发送POST请求中的嵌套json对象到我的spring REST API。在Post方法中使用Postman发送嵌套的json对象到Spring REST API

对象的Java代码

public class TestModel { 
private String id; 
private String name; 

public TestModel(String id, String name) { 
    this.id = id; 
    this.name = name; 
} 

public String getId() { 
    return id; 
} 

public String getName() { 
    return name; 
} 

}


在其余控制器Post方法代码

@RequestMapping(value = "/helloPost") 
public ResponseEntity<TestModel> helloPost(@RequestBody TestModel t) { 
    return new ResponseEntity<TestModel>(t, HttpStatus.OK); 
} 

我的邮递员截图

enter image description here


它返回状态200确定,对象我发,但它永远返回400错误的请求。 请告诉我我做错了什么。当我发送一个字符串时(我的@RequestBody字符串也是),但完全不能与自定义对象一起工作时就没有问题。

P.S 我已经添加逗号,没有改变

+0

在测试模型中,请添加默认构造函数并尝试。另外,添加使用内容类型值作为应用程序json的注释。将其设置在请求标题中。 – notionquest

+0

谢谢,它帮了很多 –

+0

问题解决了吗? – notionquest

正如在评论中提到的,请添加TestModel类的默认构造函数。它应该解决问题。

作为一个额外的步骤,如果Web服务将接受json作为输入,然后添加使用内容类型作为应用程序json的注释。

你错过了 “” 后JSON id字段。适当的JSON是你的情况将如下: -

{ 
"id" : "1", 
"name" : "test" 
} 
+0

后仍然不能正常工作,没有变化,状态400 –

这是一个畸形的json你发送到服务器。你需要添加逗号来分隔json中的元素。

即使邮差在左边显示错误的图标。

{ 
"id" : 1, 
"name" : "test" 
} 

此外,您还需要在对象模型中添加setter和默认构造函数来设置这些值。

+0

谢谢,但是还是没有变化 –