2011-05-24 50 views
2

林目前正在为采用序列杰克逊和新泽西州,在这里我的资源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çãøAssim”, “idOrganica”:123, “dataAlteracao”: “2010-12-23”, “ID”:111 }, { “designacao”: “FunçãøAssada”, “idOrganica”:124, “dataAlteracao”: “2000年5月21日”, “ID”:113 },{ “designacao”: “Funçãø名韦TERMO”, “idOrganica”:125, “dataAlteracao”: “2002-12-23”, “ID”:113 },{ “designacao”:“Funçã o Mal Passada“, ”idOrganica“:126, “dataAlteracao”: “2011-06-14”, “ID”:112 },{ “designacao”: “Funçãø贝姆Passada”, “idOrganica”:127, “dataAlteracao”: “2006-02-01”, “id”:112 },{ “designacao”:“Funçã£o Crua”, “idOrganica”:128, “dataAlteracao”:“2003-04-07 ”, “ID”:111 },{ “designacao”: “FunçãøQueimadinha”, “idOrganica”:127, “dataAlteracao”: “2006-02-01”, “ID” :113 },{ “designacao”:“Funç㣠ØTostada”, “idOrganica”:128, “dataAlteracao”: “2003-04-07”, “ID”:113 }]}

我怎样才能改变 “清单” 的名字与一些我自己的?我尝试了使用@jsonTypeName或@jsonTypeInfo等几个注释,但那不起作用....

+1

您是否配置Jersey以使用Jackson,因为默认情况下它使用JAXB。你给出的输出类型似乎与JAXB有关,而不是Jackson。 – 2011-06-20 16:08:28

回答

0

为Jackson添加依赖关系。 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。不需要额外的配置,如果它在classpath上,Jersey会检测到它。

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