Jaxb JSON отсутствует скобки для одного элемента массива - PullRequest
5 голосов
/ 17 июня 2011

Я использую JAXB / Jersey (1.3) для преобразования java в json в REST API. Я много читал об этой проблеме, я пробовал это решение , оно работает наполовину:

@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 = новый ArrayWrapper ();
aw.list.add ( "тест");

Я получаю {"list": ["test"]}, поэтому он работает, но когда я оборачиваю ArrayWrapper в другой класс, он не работает:

@XmlRootElement  
public class Wrapper  
{  
    public ArrayWrapper aw;

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

new Wrapper ();
Я получаю {"aw": {"list": "test"}}

Кто-нибудь знает, как это исправить?

1 Ответ

0 голосов
/ 23 декабря 2011

Я не совсем уверен, что у вас все получилось, поэтому я внес свой вклад.

Я также недавно наткнулся на эту проблему. Я нашел post в stackoverflow, который помог мне, но еще более полезной была эта статья (введение Джексона могло бы помочь).

Надеюсь, это вам тоже поможет. Для меня было 5 минут, чтобы решить проблему.

...