Acessar informações dentro de uma Array

Preciso guardar o campo contrato que esta dentro de uma array pra uma variável.
Como posso fazer isso no js ?

“CodigoPessoa”: 17666, “Conexoes”: [{“bloqueada”: “Sim”, “cadastro”: “2021-03-31”, “cep”: “xxxxxxxx”, “codconexao”: 18944, “contrato”: 16440, “endereco”: “xxxxxxxxxxxxxxxxxxxxxx- MARILIA - Lagoa da Prata”, “latitude”: “”, “longitude”: “”, “mac_address”: “xxxxxxxxxxxxxxx”, “motivo_bloqueio”: “Falta Pagamento”, “username”: “xxxxxxxxxxxxxxxx”}], “Nome”: “GIULIA xxxxxxxxxxxxxxxxx”, “status”: “OK”

Olá @Netwise_Internet, tente assim:

Isso só vai funcionar se seu retorno sempre houver a propriedade “contrato”

function run(response){
  response = JSON.parse(response).Conexoes[0].contrato
  return response
}

Sempre for passar um JSON ou array de objetos do Blip ele entra no JS como string e por isso é necessário utilizar JSON.parse para converter para JSON novamente, assim você consegue acessar suas propriedades normalmente.

Consegui te ajudar?

Deu certo sim, Obrigado
Estava esquecendo tbm de colocar a variável de entrada.
Muito obrigado mesmo.

1 Curtida

@Adriano_tsi Bom dia, aproveitando o post do @Netwise_Internet, eu tenho o retorno abaixo de uma api, onde ele me traz dados diferentes, porem a nomenclatura do menu é a mesma, e quando uso o código acima sugerido, ele me retorna somente o primeiro array, sabe dizer como consigo fazer uso de toda a informação? e como consigo distinguir uma da outra?
[
{
“CNPJEntidade”: “xxxxxxxxxxxxx”,
“CodEntidade”: “0000000001”,
“CNPJCliente”: “xxxxxxxxxxxxxx”,
“EmailCliente”: “xxxxxxxxxxxxxxxxxxxxx”,
“NumeroTitulo”: “xxxxxxxxxxxxxxxx”,
“DataEmissao”: “xxxxxxxxxxxxxxxxxxxx”,
“DataVencimento”: “xxxxxxxxxxxxxxxxx”,
“ValorSaldo”: xxxxxxxxxxxxxxxxx,
“Banco”: “xxxxxxxxxxxx”,
“Agencia”: “xxxxxxxxxxxxxxxxxxxxx ",
“Conta”: " xxxxxxxxxxxxxxxxxxx ",
“Carteira”: " xxxxxxxxx ",
“NossoNumero”: " xxxxxxxxxxxxxxxxx “,
“OrdemCompra”: “”,
“CodRamoAtividade”: “xxxxxxxxxxxxxx”,
“NomeCliente”: “xxxxxxxxxxxxxxxxxxxxxxxxxx
},
{
“CNPJEntidade”: “xxxxxxxxxxxxxxxxxx”,
“CodEntidade”: “xxxxxxxxxxxxxxxxxxxxxx”,
“CNPJCliente”: “xxxxxxxxxxxxxxxx”,
“EmailCliente”: “xxxxxxxxxxxxxxxxxx”,
“NumeroTitulo”: “xxxxxxxxxxxxxxxxxx
“DataEmissao”: “xxxxxxxxxxxxxxxxxxxxxx”,
“DataVencimento”: “xxxxxxxxxxxxxxxxxxxx”,
“ValorSaldo”: xxxxxxxxxxx,
“Banco”: “xxxxxxxxxxx”,
“Agencia”: " xxxxxxxxxxxxxxxxx”,
“Conta”: " xxxx ",
“Carteira”: "xxx ",
“NossoNumero”: " xxxxxx ",
“OrdemCompra”: “”,
“CodRamoAtividade”: “xxxxxxxxxxx”,
“NomeCliente”: “xxxxxx”
}
]

Olá @Rangel.Alves , neste caso você precisaria de um forEach para percorrer seu array e capturar em alguma variável, mas qual seria o contexto, você precisa montar um menu dinâmico ou apenas salvar esses valores em variável?

@Adriano_tsi preciso, primeiro precisava saber quantas posições tem o array, depois fazer uma soma de todos “ValorSaldo”: xxxxxxxxxxx, e mostrar somente os 3 que vencerão primeiro semelhante com o modelo abaixo, fazendo para a pos2 pos3 etc…
Documento:
{{pos1@NumeroTitulo}}
Ordem de Compra:
{{pos1@OrdemCompra}}
Data Emissão:
{{pos1@DataEmissao}}
Data de Vencimento:
{{pos1@DataVencimento}}
Valor:
R$: {{pos1@ValorSaldo}}

É isso é um pouco mais complexo @Rangel.Alves visto que você precisa ordernar esses dados, formatar datas e mais alguns valores acredito.

Acredito que isso possa ser um pouco mais simples, mas talvez isso já te dê um norte.

function run(response){
  //parseando resultado da API
  response = JSON.parse(response)

  //contagem de itens
  let qtd = response.length
  
  //variaveis
  let total = 0

  //data atual para comparação com vencimento
  let atualDay = new Date().getTime()
  let diffDaysTime = 0
  let vencimento = ""

  //iniciando array de retorno
  let res = []

  //percorrendo resultado
  response.forEach(element => {
    //somando todos os saldos
    total = total + parseFloat(element.ValorSaldo)
    vencimento = new Date(element.DataVencimento).getTime()

    //diferença entre data atual até o vencimento
    diffDaysTime = vencimento - atualDay
    res.push({
      qtd: qtd,
      valor: element.ValorSaldo,
      total: total,
      vencimento: vencimento,
      diffDaysTime: diffDaysTime
    })
  });

  //ordernando array por vencimento e retornando apenas os 3 primeiros
  res = res.sort(function(a, b) {
    return a.diffDaysTime - b.diffDaysTime;
  }).slice(0, 3)
  
  return res
}
1 Curtida

Muito Obrigado. Deu certinho aqui

1 Curtida