RestTemplate映射到对象
我试图用RestTemplate调用Web服务,目前我使用的对象类型,而不是一个具体的用户定义一个这是我想做的事情。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;
}
}
使用belo调用API的W代码 -
Locales locales = restTemplate.getForObject(localeUrl, Locales.class, apiKey);
创建一个class
语言环境 -
@XmlRootElement(name = "Locales")
@XmlAccessorType(XmlAccessType.FIELD)
public class Locales{
private List<Locale> locales = new ArrayList<>();
// getter and setter
}
我试过这个,并且在倾倒出日志的时候得到了Locales(locales = [])。我将更新上面的代码 – DorkMonstuh
使用公共访问说明符在您的Locales类中创建getter和setter方法。我在评论中写回答,以创建getter和setter。另外,你的Locale类应该有getter和setter –
另一种方法是声明带有公共访问说明符的字段。但是,这不是建议的方式。 –
您需要创建类将与输出映射。更好地阅读本教程 - https://spring.io/guides/gs/consuming-rest/ –
嗨@VikasSachdeva应我的类是包含其中包含的代码和名称的对象列表的类? – DorkMonstuh