0

RESTEasy を使用して RESTful Web サービスを作成し、HashMap を含む応答を作成しようとしています。Web サービスは、JSON または XML のいずれかを生成します。JSON マップは正しいですが、XML マップにはコンテンツがありません。RESTEasy @WrappedMap アノテーションは、マップを XML にマーシャリングすることになっています。

@XmlRootElement(name="Response")
public class RootResponse {
  private HashMap<String, String> test;
  public RootResponse() {
    test = new HashMap<String, String>();
    test.put("Fred", "Wilma");
    test.put("Barney", "Betty");
  }
  @XmlElement
  @WrappedMap(map="test", key="name", entry="spouse")
  public HashMap<String, String> getTest() {
    return this.test;
  }
}

JSON 出力:

{
  "test": {
    "Fred": "Wilma",
    "Barney": "Betty"
  }
}

XML 出力:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
  <test/>
</Response>

@WrappedMap アノテーションを省略すると、同じ出力が得られます。

@WrappedMap はプロパティに対して機能しませんか?

4

1 に答える 1

0

この質問を投稿してからしばらく経ちましたが、他の誰かがこの質問に出くわした場合に備えて、最近学んだことを共有したいと思います.

@WrappedMapこのドキュメントによると、出力 XML の要素の名前を変更するのに役立ちます。JAXB で から XML を出力できない理由については、このページHashMapに説明があると思います。

お役に立てれば。

于 2011-08-09T09:16:46.973 に答える