网站首页 > 开源技术 正文
我们知道可以发送 JSON 数据到 API 上面。
通常我们都会使用 POST 方法,在实际编程的时候我们应该如何获得发送的 JSON 数据呢?
Controller 获得 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);
}
在 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 数据已经被设置为正常的数据了。
POSTMAN 从客户端发送的数据如下:
JSON 数据字段名
在上面的示例中,我们定义的一个 JSON 字段名为:propertyTown。
如果不做任何设置的话,你的对象是需要使用与这个字段名完全相同的名字才能获得需要的数据的,有时候我们可能不希望这样。我们希望使用不同的名字,例如我们希望设置字段名为:property_town,但是我们还是希望 propertyTown 变量能够获得值。
这个时候你就需要使用:JsonProperty 注解了。
可以在定义的对象中使用 @JsonProperty(“property_town”) 注解。
原因是 RequestBody 使用 jackson 来映射对象的,所以 JsonProperty 这个是 jackson 的注解,主要告诉 jackson 来如何对字段中的数据来进行映射。
在完成上面的修改后,你的 JSON 数据应该是如下的:
然后再对 API 进行测试,你会看到 propertyTown 也能够设置上你传递的参数。
猜你喜欢
- 2024-09-16 比较一下XML, JSON和YAML(xml与json区别)
- 2024-09-16 JSON的概念及应用场景举例(json的概念及应用场景举例分析)
- 2024-09-16 Java实现在线SQL编程(完整版)(java代码中怎样写sql语句)
- 2024-09-16 RESTful API (Application Programming Interface)
- 2024-09-16 API低代码开发平台实践(低代码开发工具)
- 2024-09-16 JSON 格式的接口测试流程【Eolink Apikit】
- 2024-09-16 推荐腾讯开源的零代码、全功能、强安全API架构
- 2024-09-16 下个十年高性能 JSON 库来了:fastjson2!
- 2024-09-16 高并发之API接口,分布式,防刷限流,如何做?
- 2024-09-16 可以让你零代码快速开发REST API的几个开源项目
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)