Jackson + Jersey返回列表,其根名称为“List”

时间:2011-05-24 17:46:44

标签: list element jersey root jackson

我目前正在尝试创建一个使用Jackson和Jersey序列化POJO对象的系统,这里是我的资源:

@Path("/OrganicasFuncao")

public class 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ção Assim”,     “idOrganica”:123,     “dataAlteracao”:“2010-12-23”,     “id”:111   },{     “designacao”:“Função Assada”,     “idOrganica”:124,     “dataAlteracao”:“2000-05-21”,     “id”:113   },{     “designacao”:“Função Meio termo”,     “idOrganica”:125,     “dataAlteracao”:“2002-12-23”,     “id”:113   },{     “designacao”:“Funa§oMal Malada”,     “idOrganica”:126,     “dataAlteracao”:“2011-06-14”,     “id”:112   },{     “designacao”:“Função Bem Passada”,     “idOrganica”:127,     “dataAlteracao”:“2006-02-01”,     “id”:112   },{     “designacao”:“Funçã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 :(得分:0)

为杰克逊添加依赖项。 Jackson是Jersey支持的一款优秀的JSON序列化器/解串器。它不需要对序列化/反序列化类进行任何注释,只需将它们定义为“结构”:

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

如果您将字段设为public,则不需要getter和setter。您可以在此处找到所需的依赖项:http://mvnrepository.com/search.html?query=com.fasterxml.jackson.core。不需要额外的配置,如果它在类路径上,Jersey会检测到它。

您遇到的问题可能是由Jerseys默认的OOTB JSON序列化/反序列化引起的。