当试图解析JSON时,Spring RestTemplate响应体为空。

问题描述 投票:0回答:1

我从这个页面的类似已解决的问题中尝试了很多解决方案,但我无法使其工作。我正在做一个get petition来获取一个数组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);

我们可以看到 照片中,主体属性为空

我到底漏了什么?

json spring spring-boot rest resttemplate
1个回答
1
投票

这个问题是与字段的名称有关的。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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.