convert json into javascript array

5

How do I convert the following json into 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 in this object, however 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 bank_boleto is the json object above

    
asked by anonymous 23.08.2017 / 20:55

2 answers

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

This JSON is in a somewhat strange format ... but since it is an object with numeric keys in a String format, and with JSON values also in String format, you can 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);
    
23.08.2017 / 20:58
2

Hello, have you tried JSON.parse?

It's more or less 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 in the object.

    
23.08.2017 / 21:25