Spring 尝试解析时 RestTemplate 响应主体为空 JSON
Spring RestTemplate response body is null when trying to parse JSON
我一直在尝试此页面中类似已解决问题的许多解决方案,但我无法使其工作。我正在申请获取数组 JSON,我想将这些值映射到我的 class.
我知道了 class:
public class Devices {
private String DeviceName;
private String DeviceDescription;
public String getDeviceName() {
return DeviceName;
}
public void setDeviceName(String deviceName) {
this.DeviceName = deviceName;
}
public String getDeviceDescription() {
return DeviceDescription;
}
public void setDeviceDescription(String deviceDescription) {
this.DeviceDescription = deviceDescription;
}
}
GET 申请 returns 下面这个 JSON:
[{"DeviceName":"AMIXT-20EC-VIDM0000","DeviceDescription":"Samsung device "},{"DeviceName":"AMIXT-E0F9-VIDM0001","DeviceDescription":"Tablet Huawei"}]
我试过这样的解决方案(也尝试过 getForObject):
ResponseEntity<Devices[]> responseEntity = restTemplate.getForEntity(url, Devices[].class);
正如我们所见in this photo,正文属性为空
我错过了什么?
此问题与 JSON
中的字段名称有关,名称以大写字母开头。
一个简单的解决方案是对 Devices
class
中定义的变量使用 @JsonProperty
注释
public class Devices {
@JsonProperty("DeviceName")
private String deviceName;
@JsonProperty("DeviceDescription")
private String deviceDescription;
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getDeviceDescription() {
return deviceDescription;
}
public void setDeviceDescription(String deviceDescription) {
this.deviceDescription = deviceDescription;
}
}
我一直在尝试此页面中类似已解决问题的许多解决方案,但我无法使其工作。我正在申请获取数组 JSON,我想将这些值映射到我的 class.
我知道了 class:
public class Devices {
private String DeviceName;
private String DeviceDescription;
public String getDeviceName() {
return DeviceName;
}
public void setDeviceName(String deviceName) {
this.DeviceName = deviceName;
}
public String getDeviceDescription() {
return DeviceDescription;
}
public void setDeviceDescription(String deviceDescription) {
this.DeviceDescription = deviceDescription;
}
}
GET 申请 returns 下面这个 JSON:
[{"DeviceName":"AMIXT-20EC-VIDM0000","DeviceDescription":"Samsung device "},{"DeviceName":"AMIXT-E0F9-VIDM0001","DeviceDescription":"Tablet Huawei"}]
我试过这样的解决方案(也尝试过 getForObject):
ResponseEntity<Devices[]> responseEntity = restTemplate.getForEntity(url, Devices[].class);
正如我们所见in this photo,正文属性为空
我错过了什么?
此问题与 JSON
中的字段名称有关,名称以大写字母开头。
一个简单的解决方案是对 Devices
class
@JsonProperty
注释
public class Devices {
@JsonProperty("DeviceName")
private String deviceName;
@JsonProperty("DeviceDescription")
private String deviceDescription;
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getDeviceDescription() {
return deviceDescription;
}
public void setDeviceDescription(String deviceDescription) {
this.deviceDescription = deviceDescription;
}
}