我目前正在尝试创建一个使用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,但这没有用....
答案 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序列化/反序列化引起的。