Dúvidas JSON

1 resposta
Elias_Santana

Olá amigos, tenho uma dúvida e gostaria de saber se alguém pode me ajudar. Estou trabalhando um uma API que recebe um json () (“org.​codehaus.​jettison.​json”) mas estou com o seguinte problema:

Quando envio um Jsom com apenas um item ele é aceito e recebo o retorno com as informações do seu processamento. O problema é quando adiciono vários itens para compor o Json principal que será enviado eu recebo uma mensagem de erro e ao que parece o arrayJson com todos os istens apresenta um colchete “[” a mais no nó “Items”. Segue abaixo o trecho do código e a mensagem de erro.

Agradeço antecipadamente a juda.

Date dataAtual = new Date();

String hoje = utils.formataDateTime(dataAtual);

nfce.put(consumidor_final, 1);

nfce.put(presenca_comprador, 1);

nfce.put(forma_pagamento, codFormaPagamento);

nfce.put(natureza_operacao, Venda ao Consumidor);

nfce.put(tipo_documento, 1); // 1 - Nota Fiscal de Saída

nfce.put(cpf_destinatario, “”);

nfce.put(icms_valor_total, 0.0000);

nfce.put(icms_modalidade_base_calculo, 3);

nfce.put(valor_frete, 0.0);

nfce.put(modalidade_frete, 9);// 0 – Por conta do emitente; 1 – Por conta do destinatário; 2 – Por conta de terceiros; 9 – Sem frete;

nfce.put(icms_base_calculo, 0.0000);

nfce.put(data_emissao, hoje);

nfce.put(cnpj_emitente, “”);

// Converto a coleção em um objeto JSON

json = new JSONObject(this.nfce);

JSONArray arrObjJson = new JSONArray();

HashMap<String, String> itens;

// Lendo a tabela

for (int i = 0; i < listaProdutosNota.size(); i++) {

itens = new HashMap<>();

itens.put(numero_item, listaProdutosNota.get(i).getItem());

itens.put(codigo_produto, listaProdutosNota.get(i).getCodProduto());

itens.put(valor_desconto, 0.00);

itens.put(quantidade_comercial, listaProdutosNota.get(i).getQtd());

itens.put(cfop, 5102); // Venda de mercadoria adquirida ou recebida de terceiros

itens.put(icms_situacao_tributaria, 103);

itens.put(unidade_comercial, un);

itens.put(descricao, NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL); //Substituir pela descrição do produto no ambiente de produção

itens.put(pis_situacao_tributaria, 07);

itens.put(codigo_ncm, listaProdutosNota.get(i).getCodNcm());

itens.put(quantidade_tributavel, listaProdutosNota.get(i).getQtd());

itens.put(unidade_tributavel, un);

itens.put(cofins_situacao_tributaria, 07);

itens.put(valor_unitario_comercial, listaProdutosNota.get(i).getvUnit());

itens.put(icms_origem, 0);

itens.put(valor_bruto, listaProdutosNota.get(i).getVlrTotal());

itens.put(valor_unitario_tributavel, listaProdutosNota.get(i).getvUnit());

itens.put(valor_frete, 0);

// Adicionando convertendo a coleção Itens em um objeto Json

JSONObject obj = new JSONObject(itens);
//Colocando um objeto no Array

arrObjJson.put(obj);

}

// Incluído o array com os itens no Json Principal que será enviado

json.append(items, arrObjJson);
formasPagamento.put("forma_pagamento", codFormaPagamento);
    formasPagamento.put("valor_pagamento", valorPedido);
    jsonPagamento = new JSONObject(this.formasPagamento);

// Adicionando a forma de pagamento

json.append("formas_pagamento", jsonPagamento);
Conteúdo do Json que está sendo enviado.

{

“consumidor_final”: “1”,

“presenca_comprador”: “1”,

“forma_pagamento”: “99”,

“natureza_operacao”: “Venda ao Consumidor”,

“tipo_documento”: “1”,

“cpf_destinatario”: “”,

“icms_valor_total”: “0.0000”,

“icms_modalidade_base_calculo”: “3”,

“valor_frete”: “0.0”,

“modalidade_frete”: “9”,

“icms_base_calculo”: “0.0000”,

“data_emissao”: “2019-09-21T08:47:02.136-03:00”,

“cnpj_emitente”: “”,

“items”: [

[        <strong>//Este colchete está causando o erro</strong>

{

“valor_desconto”: “0.00”,

“quantidade_comercial”: “1”,

“cfop”: “5102”,

“icms_situacao_tributaria”: “103”,

“unidade_comercial”: “un”,

“codigo_produto”: “73”,

“descricao”: “NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL”,

“pis_situacao_tributaria”: “07”,

“codigo_ncm”: “11041900”,

“quantidade_tributavel”: “1”,

“unidade_tributavel”: “un”,

“cofins_situacao_tributaria”: “07”,

“valor_unitario_comercial”: “14.56”,

“icms_origem”: “0”,

“valor_bruto”: “14.56”,

“valor_unitario_tributavel”: “14.56”,

“valor_frete”: “0”,

“numero_item”: “1”

},

{

“valor_desconto”: “0.00”,

“quantidade_comercial”: “2”,

“cfop”: “5102”,

“icms_situacao_tributaria”: “103”,

“unidade_comercial”: “un”,

“codigo_produto”: “73”,

“descricao”: “NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL”,

“pis_situacao_tributaria”: “07”,

“codigo_ncm”: “11041900”,

“quantidade_tributavel”: “2”,

“unidade_tributavel”: “un”,

“cofins_situacao_tributaria”: “07”,

“valor_unitario_comercial”: “14.56”,

“icms_origem”: “0”,

“valor_bruto”: “29.12”,

“valor_unitario_tributavel”: “14.56”,

“valor_frete”: “0”,

“numero_item”: “2”

},

{

“valor_desconto”: “0.00”,

“quantidade_comercial”: “2”,

“cfop”: “5102”,

“icms_situacao_tributaria”: “103”,

“unidade_comercial”: “un”,

“codigo_produto”: “80”,

“descricao”: “NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL”,

“pis_situacao_tributaria”: “07”,

“codigo_ncm”: “11041900”,

“quantidade_tributavel”: “2”,

“unidade_tributavel”: “un”,

“cofins_situacao_tributaria”: “07”,

“valor_unitario_comercial”: “13.23”,

“icms_origem”: “0”,

“valor_bruto”: “26.46”,

“valor_unitario_tributavel”: “13.23”,

“valor_frete”: “0”,

“numero_item”: “3”

}

]

],

“formas_pagamento”: [

{

“forma_pagamento”: “99”,

“valor_pagamento”: “70,14”

}

]

}

1 Resposta

rodriguesabner

Pq vc converte pra object se você quer passar algo com vários parâmetros?

JSONArray array = new JSONArray (json);

Ai depois vc passa os valores. Você também na colocou o erro que você está tendo… Se vc fizer a alteração e não funcionar,manda o erro

Criado 21 de setembro de 2019
Ultima resposta 21 de set. de 2019
Respostas 1
Participantes 2