Джексон + Джерси возвращает список с корневым именем «Список» - PullRequest
2 голосов
/ 24 мая 2011

Я сейчас пытаюсь создать систему для сериализации объектов POJO, используя Джексона и Джерси, вот мой ресурс:

@Path("/OrganicasFuncao")

открытый класс OrganicasFuncaoResource {

public OrganicasFuncaoResource() {
    // TODO Auto-generated constructor stub
}

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/getAllOrganicasFuncao")

public List<OrganicaFuncaoMobileEntity> getOrganicasFuncao(){

     List<OrganicaFuncaoMobileEntity> organicas; organicas= new ArrayList<OrganicaFuncaoMobileEntity>();

    //dummy data
    organicas.add(fillOrganicaFuncao(111,123,"Função Assim","2010-12-23"));
    organicas.add(fillOrganicaFuncao(113,124,"Função Assada","2000-05-21"));
    organicas.add(fillOrganicaFuncao(113,125,"Função Meio termo","2002-12-23"));
    organicas.add(fillOrganicaFuncao(112,126,"Função Mal Passada","2011-06-14"));
    organicas.add(fillOrganicaFuncao(112,127,"Função Bem Passada","2006-02-01"));
    organicas.add(fillOrganicaFuncao(111,128,"Função Crua","2003-04-07"));
    organicas.add(fillOrganicaFuncao(113,127,"Função Queimadinha","2006-02-01"));
    organicas.add(fillOrganicaFuncao(113,128,"Função Tostada","2003-04-07"));


    return organicas;
}

private OrganicaFuncaoMobileEntity fillOrganicaFuncao(int id, int idOrg, String designacao, String dataAlteracao){

    OrganicaFuncaoMobileEntity orgFunc= new OrganicaFuncaoMobileEntity();
    orgFunc.setDataAlteracao(dataAlteracao);
    orgFunc.setDesignacao(designacao);
    orgFunc.setId(id);
    orgFunc.setIdOrganica(idOrg);

    return orgFunc;
}

}

Возвращает:

{ «Список»: [{ "designacao": "Funça o o Asim", "idOrganica": 123, «dataAlteracao»: «2010-12-23», "id": 111 }, { "designacao": "Funçà £ o Assada", "idOrganica": 124, «dataAlteracao»: «2000-05-21», "id": 113 }, { "designacao": "Funço Meo Termo", "idOrganica": 125, «dataAlteracao»: «2002-12-23», "id": 113 }, { "designacao": "Função Mal Passada", "idOrganica": 126, «dataAlteracao»: «2011-06-14», "id": 112 }, { "designacao": "Funça Be Be Passada", "idOrganica": 127, «dataAlteracao»: «2006-02-01», "id": 112 }, { "designacao": "Funça o Crua", "idOrganica": 128, "dataAlteracao": "2003-04-07", "id": 111 }, { "designacao": "FunÃ§å £ o Queimadinha", "idOrganica": 127, «dataAlteracao»: «2006-02-01», "id": 113 }, { "designacao": "Funçà £ o Tostada", "idOrganica": 128, "dataAlteracao": "2003-04-07", "id": 113 }] }

Как я могу изменить имя "Список" на свое? я попытался использовать несколько аннотаций, таких как @jsonTypeName или @jsonTypeInfo, но это не сработало ....

1 Ответ

0 голосов
/ 16 июня 2013

Добавить зависимость для Джексона.Джексон - хороший сериализатор / десериализатор JSON, который поддерживает Джерси.Он не требует каких-либо аннотаций для сериализованных / десериализованных классов, просто определите их как «структуры»:

public class Person {
    public String name;
    public int age;
}

Ему не нужны методы получения и установки, если вы разрешите вашим полям быть public.Необходимые зависимости можно найти здесь: http://mvnrepository.com/search.html?query=com.fasterxml.jackson.core. Нет необходимости в дополнительной настройке, Джерси обнаружит ее, если она находится на пути к классам.

Возможно, проблема в том, что у вас возникла проблема с Jerseys по умолчанию OOTB JSONсериализации / десериализации.

...