java - RestTemplate 映射到对象

标签 java web-services spring-boot jackson

我正在尝试使用 RestTemplate 来调用 Web 服务,目前我使用的是对象类型,而不是我想要做的具体用户定义的类型。

当前网络服务的响应是:

{Locales=[{Code=ar-AE, Name=العربية (الإمارات العربية المتحدة)}, {Code=az-AZ, Name=Azərbaycan­ılı (Azərbaycan)}, {Code=bg-BG, Name=български (България)}]}

我目前正在这样做:

Object locales = restTemplate.getForObject(localeUrl, Object.class, apiKey);

我希望能够将其映射到我定义的类,但不确定我的类应该如何布局,我的类当前如下所示:

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@XmlRootElement(name = "Locales")
@XmlAccessorType(XmlAccessType.FIELD)
public class Locales {
    private List<Locale> Locales = new ArrayList<>();

    private Locales(){};

    public List<Locale> getLocales() {
        return Locales;
    }

    public void setLocales(ArrayList<Locale> newLocales) {
        this.Locales = newLocales;
    }
}

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Locale {
    private String Code;
    private String Name;

    private Locale(){}

    public String getCode() {
        return this.Code;
    }

    public void setCode(String Code) {
        this.Code = Code;
    }

    public String getName() {
        return this.Name;
    }

    public void setName(String Name) {
        this.Name = Name;
    }
}

最佳答案

使用下面的代码来调用 API -

Locales locales = restTemplate.getForObject(localeUrl, Locales.class, apiKey);

创建一个语言环境 -

@XmlRootElement(name = "Locales")
@XmlAccessorType(XmlAccessType.FIELD)
public class Locales{
    private List<Locale> locales = new ArrayList<>();

    // getter and setter

}

关于java - RestTemplate 映射到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40699826/

相关文章:

spring-boot - spring-boot :build-image vs jib? 有什么区别

java - 基于父上下文的自定义 Jackson JSON 序列化

java - Apache Camel v2.12 | CXF组件|基本认证

java - Spring Boot Controller 的 catch block 的 JUnit5 测试覆盖率

java - Spring Boot 并行发布 REST 和 SOAP

web-services - 使用 ServiceStack 访问 SOAP 网络服务

java - 当我们在 Spring Boot 中使用 JPA Repository 时,List<Object> 默认大小是多少?

java - 从数据存储中检索实体的时间

java - 在 Eclipse 中运行 jar

java - 在启动时控制竞争条件