5

REST API で Java を json に変換するために JAXB/Jersey (1.3) を使用しています。私はこの問題について多くのことを読みました、私はこの解決策を試しました、それは半分働きます:

@XmlRootElement  
public class ArrayWrapper    
{  
        public List<String> list = new LinkedList<String>();  
}

と私の ContextResolver:

@Provider  
public class JAXBContextResolver implements ContextResolver<JAXBContext> {  

        private JAXBContext context;

        private Class[] types = {ArrayWrapper.class,Wrapper.class};

        public JAXBContextResolver() throws Exception {

            MappedBuilder builder = JSONConfiguration.mapped();
            builder.arrays("list");
            builder.rootUnwrapping(true);
            this.context = new JSONJAXBContext(builder.build(), types);
}  

ArrayWrapper aw=new ArrayWrapper();
aw.list.add("テスト");

{"list":["test"]} を取得するので動作しますが、ArrayWrapper を他のクラスでラップすると動作しません:

@XmlRootElement  
public class Wrapper  
{  
    public ArrayWrapper aw;

    public Wrapper()
    {
        aw=new ArrayWrapper();
        aw.list.add("test");
    }
}

新しいラッパー();
{"aw":{"list":"test"}} を取得しました

誰でもそれを修正する方法を知っていますか?

4

1 に答える 1

0

あなたがそれを機能させたかどうかはよくわかりませんので、私は少し貢献しています。

私も最近この問題に遭遇しました。私はstackoverflowで私を助けた投稿を見つけましたが、この記事はさらに役に立ちました(Jacksonの紹介が役立つかもしれません)。

これもお役に立てば幸いです。私にとっては、問題を解決するのに5分しかかかりませんでした。

于 2011-12-23T07:30:53.650 に答える