Spring Boot API 的 Controller 如何获得发送的 JSON 数据
  TEZNKK3IfmPf 2023年11月12日 27 0

我们知道可以发送 JSON 数据到 API 上面。

通常我们都会使用 POST 方法,在实际编程的时候我们应该如何获得发送的 JSON 数据呢?

在客户端通过 API 发送 JSON 数据到 Controller 的时候,我们可以在 Controller 使用 RequestBody 注解来获得 JSON 数据。

考察下面的代码:

/**
* Search Question Index
*
* @return
*/
@PostMapping("/sold")
public ResponseEntity<?> searchUser(@RequestBody RealEstateRequest realEstateRequest) {

logger.debug("realEstateRequest - {}" , realEstateRequest.getPropertyTown());

REListing reListing= listingService.getREListingById();

return new ResponseEntity<REListing>(reListing, HttpStatus.OK);
}

Spring Boot API 的 Controller 如何获得发送的 JSON 数据

在 API 获得 JSON 数据后,将会尝试将 JSON 数据的内容设置到对象 RealEstateRequest 中。

所以,我们还需要在代码中定义一个对象 RealEstateRequest。

RealEstateRequest 对象的代码如下,在下面的代码中,我们省下了上面需要导入的 package 等

public class RealEstateRequest implements Serializable {
private static final long serialVersionUID = 6474765081240948885L;


private String propertyTown;

public String getPropertyTown() {
return propertyTown;
}

public void setPropertyTown(String propertyTown) {
this.propertyTown = propertyTown;
}
}

在这里需要注意的是,为了能够设置正确的值到对象中,你 propertyTown 的这个变量需要和 JSON 对象中的变量相同。

所以你的 JSON 测试数据应该为:

{

"propertyTown" : "Manchester"

}

通过 API 查看对象,你会看到从客户端传递的 JSON 数据已经被设置为正常的数据了。

Spring Boot API 的 Controller 如何获得发送的 JSON 数据

POSTMAN 从客户端发送的数据如下:

Spring Boot API 的 Controller 如何获得发送的 JSON 数据

JSON 数据字段名

在上面的示例中,我们定义的一个 JSON 字段名为:propertyTown。

如果不做任何设置的话,你的对象是需要使用与这个字段名完全相同的名字才能获得需要的数据的,有时候我们可能不希望这样。我们希望使用不同的名字,例如我们希望设置字段名为:property_town,但是我们还是希望 propertyTown 变量能够获得值。

这个时候你就需要使用:JsonProperty 注解了。

可以在定义的对象中使用 @JsonProperty(“property_town”) 注解。

原因是 RequestBody 使用 jackson 来映射对象的,所以 JsonProperty 这个是 jackson 的注解,主要告诉 jackson 来如何对字段中的数据来进行映射。

在完成上面的修改后,你的 JSON 数据应该是如下的:

Spring Boot API 的 Controller 如何获得发送的 JSON 数据

然后再对 API 进行测试,你会看到 propertyTown 也能够设置上你传递的参数。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月17日   31   0   0 API
TEZNKK3IfmPf