1
resposta

Como iterar o retorno

Boa tarde Pessoal , estou consumindo um serviço rest como é que eu consigo iterar um Json , deste response abaixo:

Client client = Client.create(); WebResource webResource = client .resource("http://teste/produto.do?seguradoVO.loginVO.identificacaoBuc="+idProduto); ClientResponse response = webResource.accept("application/json") .get(ClientResponse.class);

        if (response.getStatus() != 200) {
           throw new RuntimeException("Failed : HTTP error code : "
            + response.getStatus());
        }

        String output = response.getEntity(String.class);

O resultado do output abaixo:

{ 
   "listaTesteVO":{ 
      "testesAfnd":[ 
         { 
            "codigoProduto":19,
            "codigoUnidadeProdutora":1,
            "dataInclusao":"14.06.2018",
            "descricaoProduto":"BILHETE RESIDENCIAL MENSAL  - IB",
            "descricaoRisco":"R TESTE - DE 241 ATE 99998                                  76",
            "finalVigencia":"14.06.2023",
            "identificadorAFND":1557971,
            "inicioVigencia":"14.06.2018",
            "nomeSegurado":"TESTE",
            "nuDocumento":1093,
            "situacaoDocumento":"PROPOSTA AGUARDANDO AGENDAMENTO CBON",
            "versaoDocumento":1
         },
         { 
            "codigoProduto":20,
            "codigoUnidadeProdutora":1,
            "dataInclusao":"14.06.2018",
            "descricaoProduto":"BILHETE RESIDENCIAL MENSAL  - IB",
            "descricaoRisco":"R TESTE - DE 241 ATE 99998                                  76",
            "finalVigencia":"14.06.2023",
            "identificadorAFND":1557972,
            "inicioVigencia":"14.06.2018",
            "nomeSegurado":"TESTE",
            "nuDocumento":1094,
            "situacaoDocumento":"PROPOSTA AGUARDANDO AGENDAMENTO CBON",
            "versaoDocumento":1
         },

Obrigado pela ajuda.

1 resposta

Eu recomendo que você use o Jackson para deserializar as respostas JSON. Isso pode ser feito em duas etapas, como abaixo.

Passo 1. crie um bean java com nomes de membro / objeto que correspondam à resposta esperada. Por exemplo, MyResponse.class

Passo 2. use o java bean ao ler a entidade a partir da resposta do client.

private static ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);

ClientResponse response =  Client.create(clientConfig).
            resource(uri).accept(MediaType.APPLICATION_JSON).
            header("content-type", MediaType.APPLICATION_JSON).
            get(MY_RESPONSE.class); 
MyResponse output = response.getEntity(MyResponse.class);

Ou, caso queira fazer parse depois de pegar o responde como String (como no exemplo que você enviou):

ObjectMapper mapper = new ObjectMapper();
    String json = "json value";
    MyClass obj = mapper.readValue(json , MyClass.class);

Segue um tutorial sobre jackson: https://www.baeldung.com/jackson-object-mapper-tutorial

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software