将JSON发布到后端

时间:2017-05-20 08:07:13

标签: java json post spring-boot

我正在开发一个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数据不会打印在后端。任何帮助表示赞赏。

3 个答案:

答案 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获取数据时,在正文部分而不是标题中发送数据。

这将解决您的问题