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 asacap1000
      Galera estou com uma dúvida, tenho a parte de envio de dados para em Post, com encode json e curl. Já pesquisei em todos os lugares e não encontrei nada pra clarear as idéias.
       
      a parte final é essa do envio (cliente)
      header("Content-Type: ".$mediaType); $headers = array(); $headers[] = "Accept: ".$mediaType; $headers[] = "Accept-Charset: ".$charSet; $headers[] = "Accept-Encoding: ".$mediaType; $headers[] = "Content-Type: ".$mediaType.";charset=".$charSet; $headers[] = "Authorization: Basic ".$AuthorizationHeaderBase64; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,"contatos=$contatos"); #campos que serão enviados curl_setopt($ch, CURLOPT_USERPWD, $AuthorizationHeaderBase64); curl_setopt($ch, CURLOPT_HEADER, $headers); curl_setopt($ch, CURLINFO_HTTP_CODE, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);#ativa se for ter retorno do chamada $result = curl_exec($ch); $result2 = json_decode($result,true); curl_close($ch); if($result2 === false) { $err = 'Curl error: ' . curl_error($ch); $result2 = $err; echo "This is text".$err; } var_dump ($result2);  
      Preciso de ajuda para entender como deve ser feito a página que será chamada, no caso lado servidor.
       
      Como pode ver tenho um header configurado e será enviado com chave de autorização agora como isso é feito do lado servidor??
       
      Se alguém puder me ajudar, preciso entregar este webservice sexta feira 18/10. Todos os dados recebidos serão salvos no BD Oracle.
       
       
    • By Eli Lopes
      O código em JS abaixo alimenta o combobox "programas" (html <select id="programas">) com uma lista em Json (lista-regiao-programas.json) de acordo com a escolha no combo "regioes" (html <select id="regioes">).
       
      Mas como eu faço para alimentar o combobox "municípios" (html <select id="municipios">) baseado no combo em "regiões" com a lista Json "combox-municipios.json" ?
       
      esolhe 1 programa -> alimenta regiões -> escolhe 1 região -> alimenta "município" (3 select dropdwon em cascata / aninhados)...
       
      HTML ->
      <div class="form-group"> <!-- dropdown Regiões --> <label for="regioes">Região de integração</label> <select id="regioes"> <option value=""></option> </select> </div> <div class="form-group"> <!-- dropdown Programas --> <label for="programas">Programa desenvolvido</label> <select id="programas"></select> </div> JS JSON ->
      $(document).ready(function(){ $.getJSON('SIGPLAM2/javaScript/lista-regiao-programas.json', function(data){ var items = []; var options = '<option value="">escolha uma região</option>'; $.each(data, function(key, val){ options += '<option value="' + val.nome + '">' + val.nome + '</option>'; }); $("#regioes").html(options); $("#regioes").change(function(){ var options_programas = ''; var str = ""; $("#regioes option:selected").each(function(){ str += $(this).text(); }); $.each(data, function(key, val){ if(val.nome == str){ $.each(val.cidades, function(key_city, val_city){ options_programas += '<option value="' + val_city + '">' + val_city + '</option>'; }); } }); $("#programas").html(options_programas); }).change(); }); });  
    • By MarVinOlivieraS
      Boa noite, tenho 34 anos e já comecei a aprender .php alguns anos atrás porém não pude continuar pois fui trabalhar numa área muito diferente. Hoje consegui um tempo para me dedicar a uma atividade q gosto. Escolhi voltar a a aprender a programar, mas como imagino que o mobile é que deve continuar em alta imaginei (Talvez por desinformação) que fosse mais rentável aprender Java invés de Php, já que o Java pode ser usado para desenvolvimento web, mobile e games.
      Eis que pesquisando sobre o assunto.... a maioria das pessoas que vi falando sobre começar a programar indicam aprender Javascript por também poder ser usado na maioria das áreas que o Java e por ter mais vagas de emprego.
       
      Aí imbaralhou tudo em minha cabeça... pois não quero aprender uma coisa que está entrando em desuso mas apesar de não lembrar mais nada de .php lembro que gostava de aprender a usá-lo e da sua randw Gama de possibilidades.
    • By T635
      Estou desenvolvendo um app para medir os batimentos do usuário por meio de um sensor em seu smartwatch. Entretanto estou com um bug na linha 36, e não faço a mínima ideia de como resolver.
      O link do código é esse:
      https://pastebin.com/gwEzhCdh
    • By joaohouto
      Olá, pessoal!
       
      Estou dando início a minha caminhada no desenvolvimento nativo para Android, e durante esse percurso encontrei certa dificuldade ao tentar exibir uma notificação simples.
      Segue o código:
       
      //imports public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); gerarNotificacao(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void gerarNotificacao(){ NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon( R.drawable.ic_launcher ) .setTicker( "Título ticker de teste" ) .setContentTitle( "Título de teste" ) .setContentText( "Texto de corpo - teste" ) .setAutoCancel( true ); int id = 1; NotificationManager notifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notifyManager.notify( id, builder.build() ); } }  
      Obs.: Esse é um código exemplo que achei em um site aleatório da internet
      Bom, ao iniciar a tela principal a notificação não é exibida, por quê?
       
      Agradeço a quem puder ajudar. :D
×

Important Information

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