首页 > 解决方案 > 尝试解析 JSON 时,Spring RestTemplate 响应正文为空

问题描述

我一直在尝试此页面中类似已解决问题的许多解决方案,但我无法使其工作。我正在发出请求以获取数组 JSON,并且我想将这些值映射到我的类中。

我得到了这个类:

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 请愿书在下面返回此 JSON:

[{"DeviceName":"AMIXT-20EC-VIDM0000","DeviceDescription":"Samsung device "},{"DeviceName":"AMIXT-E0F9-VIDM0001","DeviceDescription":"Tablet Huawei"}]

我已经尝试过这样的解决方案(也尝试使用 getForObject):

ResponseEntity<Devices[]> responseEntity = restTemplate.getForEntity(url, Devices[].class);

正如我们在这张照片中看到的,body 属性为空

我错过了什么?

标签: jsonspringspring-bootrestresttemplate

解决方案


该问题与 中的字段名称有关JSON,名称以大写字母开头。

一种简单的解决方案是对类@JsonProperty中定义的变量使用注释Devices

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;
    }
}

推荐阅读