使用restTemplate的REST API的响应值为空

Nossair

我创建了一个Mock服务,该服务返回JSON响应,如下所示:

{“ RegionsID”:“ 123”,“ RegionsName”:“ TestRegion”,“ DistrictList”:[{“ DistrictsID”:“ 321”},{“ DistrictsName”:“ TestDistrict”}]}

然后,我创建了GetRegionsDistrictsRestClient类,以使用restTemplate使用REST API:

public class GetRegionsDistrictsRestClient {

private Logger logger = Logger.getLogger(getClass().getName());

@Autowired
public RegionRequestHeader getRegionDistrict() {

    String theUrl = "https://a03e1a89-0363-4b17-8e3c-eb0220020e9b.mock.pstmn.io/GetRegionsDistricts";

    RestTemplate restTemplate = new RestTemplate();

    RegionRequestHeader result = restTemplate.getForObject(theUrl, RegionRequestHeader.class);

    return result;
}

}

RegionRequestHeader和DistrictRequestHeader如下所示:

public class RegionRequestHeader {

private Integer regionsID;

private String regionsName;

private List<DistrictRequestHeader> districtList;

public Integer getRegionsID() {
    return regionsID;
}

public void setRegionsID(Integer regionsID) {
    this.regionsID = regionsID;
}

public String getRegionsName() {
    return regionsName;
}

public void setRegionsName(String regionsName) {
    this.regionsName = regionsName;
}

public List<DistrictRequestHeader> getDistrictList() {
    return districtList;
}

public void setDistrictList(List<DistrictRequestHeader> districtList) {
    this.districtList = districtList;
}

}

public class DistrictRequestHeader {

private Integer districtsID;

private String districtsName;

public Integer getDistrictsID() {
    return districtsID;
}

public void setDistrictsID(Integer districtsID) {
    this.districtsID = districtsID;
}

public String getDistrictsName() {
    return districtsName;
}

public void setDistrictsName(String districtsName) {
    this.districtsName = districtsName;
}

}

响应还可以,但是如屏幕截图所示,值为空:

在此处输入图片说明

Dharmendra vishwakarma

由于您在类中具有不同的属性名称。Spring自动反序列化无法使用响应JSON结构正确映射字段。

如果这是响应机构

{ "RegionsID": "123", "RegionsName": "TestRegion", "DistrictList": [ { "DistrictsID": "321" }, { "DistrictsName": "TestDistrict" } ] }

然后,您需要在类中显式定义JSON属性名称

public class RegionRequestHeader {

@JsonProperty("RegionsID")
private Integer regionsID;

@JsonProperty("RegionsName")
private String regionsName;

@JsonProperty("DistrictList")
private List<DistrictRequestHeader> districtList;

// Getters & Setters
}

同样,

public class DistrictRequestHeader {
 @JsonProperty("DistrictsID")
 private Integer districtsID;

 @JsonProperty("DistrictsName")
 private String districtsName;
 //Getters & Setters
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用RestTemplate使用Rest API

无法使用RestTemplate解析REST响应

使用spring restTemplate的REST API的基本身份验证

使用 spring restTemplate 对 POST REST API 进行身份验证

缺少拼写字符的Java REST响应值

使用 PHP 搜索 Stripe 的 JSON 响应值

使用Optional.orElseGet()返回null并设置响应值

如何为计时器使用Ajax响应值?

在邮递员测试中,当输入参数可以为空时,如何使用多个值之一来断言响应值?

如何使用RestTEmplate将spring-data-rest JSON响应与其对象映射

无法在 Spring Boot 中通过 RestTemplate 和 Eureka 使用 REST API

使用Spring RestTemplate绕过主机验证来达到HTTPS Rest API

使用 POSTMAN 向 Java REST API 发送 POST 请求并在 xml 响应中获取空值

访问 API JSON 响应值

尝试使用RestTemplate获取对象列表时响应主体为空

如何在 profileVC 中使用登录响应值而不在 swift 中使用 segue

如何获取ajax响应值/字符串并在if条件下使用它?

Jmeter 提取响应值并在相同的 HTTP 采样器名称上使用

Jmeter从JSON聚合某些响应值以在下一个请求中使用

如何基于使用angular2的响应值分配图像

PHP:如何使用 array_filter() 过滤 JSON 响应值?

无法保留Volley响应值以备将来使用,它变为null

从React组件调用端点时,即使网络调用显示响应主体,后端响应值也为空

ngx-charts-advanced-pie-chart 正在将我的 rest api 响应读取为空

RestTemplate - 当响应主体为空时处理潜在的 NullPointerException

在 swift3 中为 PickerView 添加响应值

如何在 Spring Boot REST API 中将空值包含到 JSON 响应中

从 SpringBoot 中的 API 获取特定的响应值

为什么我在函数内创建和使用XMLGttpRequest时API响应文本为空