convert json to javascript array

Asked

Viewed 18,748 times

9

How do I convert the following json in array:

{ 
  '0': '{
    "codBanco":"085","banco":"cecred","cedente":"Aluno 2","datas":"2017/08/30","nosso_numero":"00042200000000099","cedente_cnpj":"06624079975","agencia":"01066","codigo_cedente":"00042200","conta_corrente":"00042200","carteira":"01","pagador":"Aluno 2","convenio":"testes","cod_convenio":"106004","valor":"1600","documento":"99","instrucoes":"Após o vencimento cobrar R$ 0,05 ao dia."
  }',
  '1': '{
    "codBanco":"085","banco":"cecred","cedente":"Aluno 2","datas":"2017/08/30","nosso_numero":"00042200000000099","cedente_cnpj":"06624079975","agencia":"01066","codigo_cedente":"00042200","conta_corrente":"00042200","carteira":"01","pagador":"Aluno 2","convenio":"testes","cod_convenio":"106004","valor":"1600","documento":"99","instrucoes":"Após o vencimento cobrar R$ 0,05 ao dia."
  }' 
}

I need to loop this object, but the length property comes Undefined.

for(var i = 0; i < banco_boleto.length; i++){
    var boleto = new Boleto({
        'banco': banco_boleto[i].banco,
        'data_emissao': new Date(),
        'data_vencimento': new Date(banco_boleto[i].datas),
        'valor': banco_boleto[i].valor,
        'nosso_numero': banco_boleto[i].nosso_numero,
        'numero_documento': banco_boleto[i].documento,
        'cedente':banco_boleto[i].cedente,
        'cedente_cnpj': banco_boleto[i].cedente_cnpj,
        'agencia': banco_boleto[i].agencia,
        'codigo_cedente': banco_boleto[i].codigo_cedente,
        'convenio': banco_boleto[i].convenio,
        'pagador': banco_boleto[i].pagador,
        'cod_convenio': banco_boleto[i].cod_convenio,
        'conta_corrente': banco_boleto[i].conta_corrente,
        'carteira': banco_boleto[i].carteira  ,
        'local_de_pagamento': 'PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO.',
        'instrucoes' : banco_boleto[i].instrucoes
    })

where banco_boleto is the aforementioned json object

  • Elisangela, this JSON is in a string? where does it come from?

  • comes from the customer, is the req parameter, I am using the express

2 answers

5


var array = Object.keys(json).map(i => JSON.parse(json[Number(i)]));

This JSON is in a strange format... but since it is an object with numeric keys in String format, and with JSON values also in String format, it is possible to convert.

Example:

var json = {
  '0': '{ "codBanco":"085","banco":"cecred","cedente":"Aluno 2","datas":"2017/08/30","nosso_numero":"00042200000000099","cedente_cnpj":"06624079975","agencia":"01066","codigo_cedente":"00042200","conta_corrente":"00042200","carteira":"01","pagador":"Aluno 2","convenio":"testes","cod_convenio":"106004","valor":"1600","documento":"99","instrucoes":"Após o vencimento cobrar R$ 0,05 ao dia."}',
  '1': '{ "codBanco":"085","banco":"cecred","cedente":"Aluno 2","datas":"2017/08/30","nosso_numero":"00042200000000099","cedente_cnpj":"06624079975","agencia":"01066","codigo_cedente":"00042200","conta_corrente":"00042200","carteira":"01","pagador":"Aluno 2","convenio":"testes","cod_convenio":"106004","valor":"1600","documento":"99","instrucoes":"Após o vencimento cobrar R$ 0,05 ao dia." }'
};


var array = Object.keys(json).map(i => JSON.parse(json[Number(i)]));

var boletos = array.map(entrada => {
  return {
    'valor': entrada.valor,
    'nosso_numero': entrada.nosso_numero,
    'numero_documento': entrada.documento,
    'cedente': entrada.cedente,
    'cedente_cnpj': entrada.cedente_cnpj,
    'agencia': entrada.agencia,
    'codigo_cedente': entrada.codigo_cedente,
  }
});

console.log(boletos);

2

Hello, you already tried JSON.parse?

It goes something like this:

var jsontext = '{ "name":"John", "age":31, "city":"New York" }';
var contact = JSON.parse(jsontext);
console.log(contact);

With this you can make a for on the object.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.