2016-11-20 15 views
1

RestTemplateを使用してWebサービスを呼び出そうとしていますが、現時点では、具体的なユーザー定義ではなくObject型を使用しています。オブジェクトへのRestTemplateのマッピング

は、現在、Webサービスからの応答は次のとおりです。私は、私が定義したクラスにマップすることができるようにしたいです

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

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

私は現在、これをやっています私のクラスはどのようにレイアウトされるべきかわからないので、私のクラスは現在次のようになっています:

@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; 
    } 
} 
+0

-

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

1つのclassロケールを作成します。このチュートリアルをよく読んでください - https://spring.io/guides/gs/consuming-rest/ –

+0

こんにちは@VikasSachdevaは、私のクラスがコードと名前を含むオブジェクトのリストを含むクラスであるべきですか? – DorkMonstuh

答えて

1

APIを呼び出すためのワットコード - あなたは出力にマップするクラスを作成する必要があり

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

    // getter and setter 

} 
+0

私はこれを試してログにダンプするときに、ロケール(locales = [])を取得しました。上のコードを更新します – DorkMonstuh

+0

publicアクセス指定子を使用して、Localesクラスのgetterメソッドとsetterメソッドを作成します。私はgetterとsetterを作成するコメントに答えを書きました。また、Localeクラスにはゲッターとセッターが必要です –

+0

別の方法は、publicアクセス指定子でフィールドを宣言することです。しかし、それはお勧めできません。 –

関連する問題