Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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 将JSON发布到后端_Java_Json_Post_Spring Boot - Fatal编程技术网

Java 将JSON发布到后端

Java 将JSON发布到后端,java,json,post,spring-boot,Java,Json,Post,Spring Boot,我正在开发一个spring boot应用程序,现在希望将用户详细信息发布到后端。我正在通过以下代码将Json数据发布到后端: @RestController public class DataInsertController { @RequestMapping(value = "data/api", consumes={MediaType.APPLICATION_JSON_VALUE},method = RequestMethod.POST) pub

我正在开发一个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"));
        }

    }
我发布的数据如下

{
"name": "user01",
"email":"user1@email.com"
}

从我的Rest客户端。但是数据不会在后端打印。非常感谢您的帮助。

我使用非常有效的解决方案将文章正文作为json。您可以使用ObjectMapper将主体作为字符串获取,并将其转换为obejct(主机类),如下所示:

@RestController
    public class  DataInsertController {


        @RequestMapping(value = "data/api", consumes={MediaType.APPLICATION_JSON_VALUE},method = RequestMethod.POST)
        public ResponseEntity<HostResponse> createAuthenticationToken(@RequestBody Map<String,Object> hostMap )  {

             // handle json object exceptions to validate input
            JSONObject jsonObject = new JSONObject(hostMap);            
            Host host = new ObjectMapper().readValue(jsonObject.toString()  , Host.class);

            System.out.println(host.getName());
            return ResponseEntity.ok(new HostResponse("token"));
        }
}
@RestController
公共类DataInsertController{
@RequestMapping(value=“data/api”,使用={MediaType.APPLICATION\u JSON\u value},method=RequestMethod.POST)
public ResponseEntity createAuthenticationToken(@RequestBody Map hostMap){
//处理json对象异常以验证输入
JSONObject JSONObject=新的JSONObject(hostMap);
Host Host=new ObjectMapper().readValue(jsonObject.toString(),Host.class);
System.out.println(host.getName());
返回ResponseEntity.ok(新主机响应(“令牌”);
}
}

我使用非常有效的解决方案将文章正文作为json。您可以使用ObjectMapper将主体作为字符串获取,并将其转换为obejct(主机类),如下所示:

@RestController
    public class  DataInsertController {


        @RequestMapping(value = "data/api", consumes={MediaType.APPLICATION_JSON_VALUE},method = RequestMethod.POST)
        public ResponseEntity<HostResponse> createAuthenticationToken(@RequestBody Map<String,Object> hostMap )  {

             // handle json object exceptions to validate input
            JSONObject jsonObject = new JSONObject(hostMap);            
            Host host = new ObjectMapper().readValue(jsonObject.toString()  , Host.class);

            System.out.println(host.getName());
            return ResponseEntity.ok(new HostResponse("token"));
        }
}
@RestController
公共类DataInsertController{
@RequestMapping(value=“data/api”,使用={MediaType.APPLICATION\u JSON\u value},method=RequestMethod.POST)
public ResponseEntity createAuthenticationToken(@RequestBody Map hostMap){
//处理json对象异常以验证输入
JSONObject JSONObject=新的JSONObject(hostMap);
Host Host=new ObjectMapper().readValue(jsonObject.toString(),Host.class);
System.out.println(host.getName());
返回ResponseEntity.ok(新主机响应(“令牌”);
}
}

您需要使用Jackson注释对类进行注释,否则它将不知道反序列化哪个字段:

@JsonCreator
  public Host((@JsonProperty("name")String name,@JsonProperty("email") String email) {
        this.setName(name);
        this.setEmail(email);
    }

您需要使用Jackson注释对类进行注释,否则它将不知道反序列化哪个字段:

@JsonCreator
  public Host((@JsonProperty("name")String name,@JsonProperty("email") String email) {
        this.setName(name);
        this.setEmail(email);
    }

如果您使用邮递员发送数据,则发送正文部分的数据,而不是使用@RequestBody获取数据的标题


这将解决您的问题

如果您使用邮递员发送数据,然后在正文部分而不是标头中发送数据,因为您使用@RequestBody来获取数据


这将解决您的问题

(没有我的IDE)我没有看到任何错误,但我会删除一些内容,例如consumes={MediaType.APPLICATION\u JSON\u VALUE}和对象类中的构造函数。试着不用它,告诉我它是否有效:)实际上是在我打印
System.out.println(host.getName())时。它打印nul。知道为什么吗?如何将接收到的json数据检索到java对象值?我测试您的代码。没什么不对的。它起作用了。可能是您的客户端请求格式不正确。你能分享一下吗?实际上我没有开发任何前端。所以我尝试使用高级Rest客户端,在那里我以HTTP头的形式传递名称和电子邮件(没有我的IDE)。我没有看到任何错误,但我会删除一些东西,比如consumes={MediaType.APPLICATION\u JSON\u VALUE}和对象类中的构造函数。试着不用它,告诉我它是否有效:)实际上是在我打印
System.out.println(host.getName())时。它打印nul。知道为什么吗?如何将接收到的json数据检索到java对象值?我测试您的代码。没什么不对的。它起作用了。可能是您的客户端请求格式不正确。你能分享一下吗?事实上我没有开发任何前端。所以我尝试使用高级Rest客户端,在那里我以HTTP头的形式传递名称和电子邮件。我认为这是不必要的,因为Spring使用Jackson JSON库自动将实例封送到JSONyes中,这不是必需的,但对于无效正文返回Spring返回错误。通过使用Jackson JSON库,您可以处理输入并基于输入body返回适当的响应。我认为这是不必要的,因为Spring使用Jackson JSON库自动将实例封送到JSONyes中,这不是必需的,但对于无效的body返回,Spring返回错误。通过使用Jackson JSON库,您可以处理输入并基于输入体返回适当的响应