我正在开发一个spring boot应用程序,现在想要将用户详细信息发布到后端。我通过以下代码将Json数据发布到后端:
@RestController
public class DataInsertController {
@RequestMapping(value = "data/api", consumes={MediaType.APPLICATION_JSON_VALUE},method = RequestMethod.POST)
public ResponseEntity<HostResponse> createAuthenticationToken(@RequestBody Host host ) {
System.out.println(host.getName());
return ResponseEntity.ok(new HostResponse("token"));
}
}
我的对象类就像
import java.io.Serializable;
public class Host implements Serializable{
private static final long serialVersionUID = -8445943548965154778L;
private String name;
private String email;
public Host(){
super();
}
public Host(String name, String email) {
this.setName(name);
this.setEmail(email);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
我发布了像
这样的数据{
"name": "user01",
"email":"user1@email.com"
}
来自我的Rest Client.But数据不会打印在后端。任何帮助表示赞赏。
答案 0 :(得分:1)
我使用如此有效的解决方案来获得json的帖子。你可以将body作为字符串并使用ObjectMapper将其转换为你的obejct(Host类),如下所示:
--filter
答案 1 :(得分:1)
您需要使用Jackson Annotations注释您的课程,否则它将无法知道要反序列化的字段:
@JsonCreator
public Host((@JsonProperty("name")String name,@JsonProperty("email") String email) {
this.setName(name);
this.setEmail(email);
}
答案 2 :(得分:1)
如果您使用Postman发送数据,则在您使用@RequestBody获取数据时,在正文部分而不是标题中发送数据。
这将解决您的问题