Jump to content
Rengavitp

ler json com java

Recommended Posts

Boa tarde pessoal, sou novo ainda em java e estou com a seguinte dificuldade, preciso imprimir um pedido de venda que vem de um sistema no formato json, ja tentei de diversas formas mas nenhuma deu certo, alguem pode me ajudar? Vou colocar abaixo o arquivo json e o metodo mais recente que testei, porem ele só mostra null, sei que o problema deve estar na forma de percorrer o json, mas nao faço ideia de como fazer.

 

{  
   "retorno":{  
      "pedidos":[  
         {  
            "pedido":{  
               "desconto":"15,00",
               "observacoes":"Testando o campo observações do pedido",
               "observacaointerna":"Testando o campo observações internas do pedido",
               "data":"2017-07-28",
               "numero":"1",
               "numeroPedidoLoja":"100000001",
               "vendedor":"João da Silva",
               "valorfrete":"22.50",
               "totalprodutos":"139.98",
               "totalvenda":"147.48",
               "situacao":"Em Aberto",
               "loja": "123456789",
               "dataPrevista":"2017-07-28",
               "tipoIntegracao":"Magento",
               "cliente":{  
                  "nome":"Organisys Software",
                  "cnpj":"00.000.000/0000-1",
                  "ie":"0000000000",
                  "rg":"162788484",
                  "endereco":"Rua Visconde de São Gabriel",
                  "numero":"000",
                  "complemento":"Sala 000",
                  "cidade":"Bento Gonçalves",
                  "bairro":"Cidade Alta",
                  "cep":"95.700-000",
                  "uf":"RS",
                  "email":"teste@organisys.com.br",
                  "celular":"",
                  "fone":"(54) 2222-22222"
               },
               "itens":[  
                  {  
                     "item":{  
                        "codigo":1234,
                        "descricao":"Mochila",
                        "quantidade":"2.0000",
                        "valorunidade":"69.990000000",
                        "precocusto":null,
                        "descontoItem":"0.00",
                        "un":"Pç",
                        "pesoBruto": "0.520",
                        "largura": "20",
                        "altura": "18",
                        "profundidade": "15",
                        "unidadeMedida": "cm",
                        "descricaoDetalhada": "Ecobag esportiva"
                     }
                  }
               ],
               "parcelas":[  
                  {  
                     "parcela":{  
                        "valor":"73.74",
                        "dataVencimento":"2017-07-28 00:00:00",
                        "obs":"Teste obs 1",
                        "forma_pagamento":{  
                           "id":"1",
                           "descricao":"Dinheiro",
                           "codigoFiscal":"1"
                        }
                     }
                  },
                  {  
                     "parcela":{  
                        "valor":"73.74",
                        "dataVencimento":"2017-08-28 00:00:00",
                        "obs":"Teste obs 2",
                        "forma_pagamento":{  
                           "id":"1",
                           "descricao":"Dinheiro",
                           "codigoFiscal":"1"
                        }
                     }
                  }
               ],
               "nota":{  
                  "serie":"1",
                  "numero":"012346",
                  "dataEmissao":"2017-08-28 00:00:00",
                  "situacao":"1",
                  "chaveAcesso":"43140401056417000139550010000123461496923524",
                  "valorNota": "147.48"
               },
               "transporte":{  
                  "transportadora":"Transportadora",
                  "cnpj":"00.000.000/0000-1",
                  "tipo_frete":"R",
                  "volumes":[  
                     {  
                        "volume":{  
                           "idServico":"1231293",
                           "servico":"SEDEX 10",
                           "codigoRastreamento":"SX052413651BR",
                           "dataSaida":"2017-07-28",
                           "prazoEntregaPrevisto":"1",
                           "valorFretePrevisto":"11.25",
                           "valorDeclarado": "0.00",
                           "remessa":{  
                              "numero":"12345AAA",
                              "dataCriacao":"2017-10-17"
                           },
                           "dimensoes":{  
                              "peso":"1.553",
                              "altura":"20",
                              "largura":"15",
                              "comprimento":"20",
                              "diametro":"0"
                           }
                        }
                     },
                     {  
                        "volume":{  
                           "idServico":"1231293",
                           "servico":"SEDEX 10",
                           "codigoRastreamento":"SX052413651BR",
                           "dataSaida":"2017-07-28",
                           "prazoEntregaPrevisto":"1",
                           "valorFretePrevisto":"11.25",
                           "remessa":null,
                           "dimensoes":{  
                              "peso":"1.553",
                              "altura":"20",
                              "largura":"15",
                              "comprimento":"20",
                              "diametro":"0"
                           }
                        }
                     }
                  ],
                  "enderecoEntrega":{  
                     "nome":"Organisys Software Entrega",
                     "endereco":"Rua Assis Brasil",
                     "numero":"222",
                     "complemento":"",
                     "cidade":"Bento Gonçalves",
                     "bairro":"Centro",
                     "cep":"95.700-000",
                     "uf":"RS"
                  }
               }
            }
         }
      ]
   }
}
package javaapplication2;
 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
 
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
 
public class JSONRead {
 
    public static void main(String[] args) {
        JSONObject jsonObject;
        //Cria o parse de tratamento
        JSONParser parser = new JSONParser();
        //Variaveis que irao armazenar os dados do arquivo JSON
        String nome;
        String sobrenome;
        String estado;
        String pais;
 
        try {
            //Salva no objeto JSONObject o que o parse tratou do arquivo
            jsonObject = (JSONObject) parser.parse(new FileReader(
                    "//users/vagnermocelin/teste.json"));
             
            //Salva nas variaveis os dados retirados do arquivo
            numero = (String) jsonObject.get("numero");
            vendedor = (String) jsonObject.get("vendedor");
            total_produtos = (String) jsonObject.get("total_produtos");
            total_venda = (String) jsonObject.get("total_venda");
 
            System.out.printf(
                    "Numero: %s\nVendedor: %s\nProdutos: %s\nVenda: %s\n",
                    numero, vendedor, total_produtos, total_venda);
        } 
        //Trata as exceptions que podem ser lançadas no decorrer do processo
        catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
 
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Motta
      As 7 linguagens de programação que você deve aprender em 2020
    • By ilbett
      Boa noite prezados.
       
      Estou com um problema há alguns dias. Espero que um de vocês tenha uma luz para ele haha.
       
      Estou fazendo uma integração entre a loja de um cliente hospedada na NuvemShop e a automatizadora de marketing RD Station.
      Através do Postman eu faço um GET da NuvemShop e um POST dos dados pegos da NuvemShop para a RD Station.
      O Problema, nesse caso, é que eles nomeiam as strings de formas diferentes.
       
      Vocês conhecem algum intermediador que receba esse POST com os dados da NuvemShop e traduza, por exemplo, "costumer.name" para "name" e envie para a RD?
      Ou algum script que eu possa rodar no Postman para fazer essas "traduções" das strings?
       
      Desde já, muito obrigado!
    • By Overtron8000
      Ola Pessoas,
      Recentemente fiz uma prova para Desenvolvedor Javascript jr em uma empresa e tinha varias questões para escrever o código NA MÃO  e uma delas me deixou encabulado por exigirem que um junior saiba de cór isso era a seguinte pergunta:
       
      Dado o JSON abaixo construa um código que faça o calculo da media do parâmetro "time"  quando "type" for semelhante a "call" e o máximo valor para "time" quando "type for semelhante a "ping". Considere que o array events poderá conter milhões de objetos portanto seu código deve levar em consideração o processamento assíncrono do Node.js de forma que o resultado seja síncrono, ou seja, o codigo so deve completar quando o resultado do s cálculos estiverem prontos.
      JSON : events = { [ {type:"ping", time :10) [ {type:"ping", time: 5) [ {type:"call", time: 99) [ {type:"call", time: 67) [ {type:"ping", time: 7) [ {type:"call", time: 127) }  
      Isso tudo para fazer no resto da folha que sobrou alem da pergunta, se alguém saber uma solução poste ai que estou curioso ate hoje, sei que leva o conceito de promisses assíncronas mas ainda não cheguei nessa parte
       
       
       
       
                                   
       
       
    • By granderodeo
      Queria que quando o usuário efetuasse o login, exibisse a mensagem "Login efetuado com sucesso", e se houve algum erro também exibisse uma mensagem de erro.
       
      valida_login.php
      <?php session_start(); include_once("config/conexao_fornec.php"); if (isset($_POST['enviar'])) { if (!empty($_POST['login']) || !empty($_POST['senha'])) { $login=$_POST['login']; $senha=MD5($_POST['senha']); $comando="SELECT * FROM usuarios, orders WHERE email = '$login' and senha= '$senha' and id_usuario"; $enviar=mysqli_query($conn, $comando); $resultado= mysqli_fetch_assoc($enviar); if ($resultado) { $_SESSION['id_usuario']=$resultado['?']; $_SESSION['order_date']=$resultado['order_date']; $_SESSION['order_id']=$resultado['order_id']; $_SESSION['login']=$resultado['login']; $_SESSION['senha']=$resultado['senha']; $_SESSION['email']=$resultado['email']; $_SESSION['nome']=$resultado['nome']; $_SESSION['id']=$resultado['id']; $_SESSION['seguranca']=$resultado['seguranca']; header("location:../index.php"); exit; }else{ $_SESSION['msg'] = "<div class='alert alert-success'>Versão e Revisão cadastrada com sucesso!</div>"; } }else{ $_SESSION['mensagem']="<div class='alert alert-danger alert-dismissible text-center' style='width: 24.5%; position: absolute; margin-left: 38.2vw; margin-top: 3vh;'><button type='button' class='close' data-dismiss='alert'>&times;</button>Ops! Alguns dos campos ficou em branco.</div>"; header("location:https://compre-aqui.com/users/"); exit; } }else{ header("location:users"); exit; } ?>  
       
      Corpo do login
      <section class="hero is-success is-fullheight"> <div class="hero-body"> <div class="container has-text-centered"> <div class="column is-4 is-offset-4"> <h2 class="text-center mb-4">Faça seu login</h2> <div class="box"> <form action="validar_login.php" method="POST"> <div class="field"> <div class="form-group"> <label for="name">E-mail</label> <input name="login" id="name" type="name" class="form-control" placeholder="Nome completo"> </div> </div> <div class="field"> <div class="form-group"> <label for="senha">Senha</label> <input name="senha" id="senha" class="form-control" type="password" placeholder="Senha"> </div> </div> <button type="submit" class="btn btn-info btn-block" name="enviar">Realizar login</button> </form> <hr style="background-color: white;"> <a href="https://compre-aqui.com/users/cadastro.php" class="btn btn-info btn-block mt-2">Esqueci minha senha</a> <a href="https://compre-aqui.com/users/cadastro.php" class="btn btn-info btn-block mt-2">Cadastre-se</a> </div> </div> </div> </div> </section>  
    • By RSN
      Boa noite,
      Gostaria de após selecionar o produto carregasse outro select informando os preços(tabela produto), com javascript fazendo requisição para a servlet.
      div class="form-group col-md-4"> <label for="exampleInputEmail1">Produto</label> <select class="form-control select2" style="width: 100%;" id="id_produto" name="id_produto"> <option value="nao_informado">Selecione</option> <c:forEach items="${produto}" var="product"> <option value="${product.id}" id="${product.id}" <c:if test="${product.id == orcament.id_produto}"> <c:out value = "selected=selected" /> </c:if>> ${product.descricao}</option> </c:forEach> </select> </div> <div class="form-group col-md-1"> <label for="exampleInputEmail1">Tabela/Precos</label> <select class="form-control select2" style="width: 100%;" id="id_table" name="id_table" > <option value="nao_informado">Selecione</option> </select> </div>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.