4

メソッドが List の JSON 配列を返す方法を知りたいです。たとえば、次のようになります。

@GET 
@Produces("application/json")
public List<String> aMethod(){
  return Array.asList("text1", "text2", "text3");
}

たとえば、メソッドでリスト引数タイプを受け取る方法を知りたいです

@PUT
@Consumes("application/json") void otherMethod(List<String>){
   // do something ;
}

JaxbContext について読んだことがありますが、それがどのように役立つかを理解しています。

4

2 に答える 2

4

JAXB では、2 種類の がListサポートされています。1 つ目は要素のリストで、2 つ目は区切られた文字列 (区切り文字を使用してリストに解析される「通常の」XML 値または属性) です。最初のものはあなたが望むもの(「配列」)のようです。

参考までに、http: //jaxb.java.net/jaxb20-ed/api/javax/xml/bind/annotation/XmlList.htmlを参照してください。

どちらの場合も、必要なリストを他のオブジェクトでカプセル化する必要があることに注意してください。基本的に、XML (および拡張 JAXB) は、すべてを単一のルート ノード/オブジェクトまで追跡することを好みます。したがって、それをモデル化するには、次のようなものが必要です。

@XmlRootElement(name="wrapper")
public abstract class ListWrapper {
   public List<String> names;
}

ListWrapper次に、オブジェクトを受け入れて返し、そこから実際のリストを抽出するようにメソッドを変更する必要があります。

于 2012-06-22T14:57:39.910 に答える