JSON sem identificar as propriedades

4 respostas
S

Bom dia pessoal!
Todos retorno em json de classes mappeadas @entity estão retornando no formato correto, mas um método que retorna um VO não esta sendo formatado corretamente, alguém saberia dizer?
Segue exemplo:
Retorno com classe mapeada @Entity:
[“id”:2,“fantasia”:“EMPRESA TESTE”]
Retorno com VO:
[“2”,“EMPRESA TESTE”]

Todos os dois métodos estão definido
produces = MediaType.APPLICATION_JSON_VALUE

Estou usando JPA/EclipseLink+SpringBoot

vlw

4 Respostas

L

Posta seu VO.

S

Opa, segue:

@Data

@EqualsAndHashCode(callSuper=false)

public class ProdutoVO implements Serializable {
private static final long serialVersionUID = 1L;

private String codigo;
private String digito;
private String embal;

}

o controller:

@Controller

@RequestMapping(value=Constants.MAPPING_PRODUTO)

public class ProdutoController {
@Autowired
private ProdutoService service;

  ModelMapper modelMapper = new ModelMapper();	  
  
  @RequestMapping(value=Constants.MAPPING_PRODUTO+Constants.MAPPING_LISTALL, produces = MediaType.APPLICATION_JSON_VALUE,  method = RequestMethod.GET)
  @ResponseBody
  public List<ProdutoVO> getListEmbalItemByCodeBar(String codeBar) {
    List<ProdutoVO> items = service.getListEmbalItemByCodeBar(codeBar);
    return items;
  }

}

obrigado.

L

Faça um teste… em seus getters/setters, adicione a anotação @JsonProperty(“nomeDaSuaVariavel”)

Exemplo:

public class ProdutoVO implements Serializable {
private String codigo;

@JsonProperty("codigo")
public void setCodigo(String codigo){
...
}
}

O JsonProperty que usei é o do jackson: org.codehaus.jackson.annotate.JsonProperty.

Os meus VOs eu também anoto com o @javax.xml.bind.annotation.XmlRootElement.

Por fim, o parse:

final Gson gson = new Gson();
final String json = gson.toJson(produtoVo);
S

Opa brigado pelo retorno amigo, mas descobri que meu problema esta no retorno da storedprocedure, aparentemente o cast não esta funcionando, testei passando uma lista de objetos criados manualmente e o json esta funcionando numa boa, mas quando faço o cast do retorno da procedure ele não ta funcionando:
List produtos = (List)storedProcedure.getOutputParameterValue(“O_RESULTADO”);

O problema está nesta linha, estou vendo como resolver!

Se tiver alguma idea seria bem vindo.

Obrigado

Criado 28 de janeiro de 2016
Ultima resposta 2 de fev. de 2016
Respostas 4
Participantes 2