Acessando opções aninhadas numa API Rest

Tenho a seguinte estrutura JSON retornando de uma API:

{
  “data”: {
    “id”: 1,
    “stage”: {
      “id”: 7,
      “nome”: “Prod”,
      “parametros”: [
      {
        “valor”: “16”,
        “codigo”: “START”
      },
      {
        “valor”: “12”,
        “codigo”: “END”
      }
      ]
    }
  }
}

Estou tentando acessar o valor “16” do array parâmetros assim:

getStage@data.stage.parametros.valor

sem sucesso,

tentei assim também

getStage@data.stage@parametros.valor

Não funcionou também, alguém tem alguma dica de como faço isso?

Oi @Lara_Dias_Vasconcelo! Tudo bem?
Eu sou a Bia e trabalho aqui na Take Blip no time de Comunidade :blush:
Primeiramente, queria te dar as boas-vindas ao Fórum! É muito bom ter você aqui!

Vou pedir que o @Bruno tente te ajudar com essa dúvida, ok? Ele é Desenvolvedor e manja muito do Blip :grin:

1 Curtida

Ei @Lara_Dias_Vasconcelo tudo bem com você? Bem-vinda à nossa comunidade! :smiling_face_with_three_hearts:

Você não consegue fazer isso, pois o objeto Parametros é uma lista. Você teria que, primeiramente, acessar o primeiro indice de parametros ( parametros[0] ) para isso, no entando o Builder não permite percorrer elementos dessa maneira.

Você pode criar uma Ação JavaScript que vai receber esse json e te retornar só o valor que você precisa. Supondo que seja o primeiro índice, valor 16:

function run(input){
   var json = JSON.parse(input);
  return json.data.stage.parametros[0].valor;
}

Onde: input é o seu JSON passado como variável de entrada.

Salve o resultado em uma variável e você terá o valor que precisa.

Testa aí e diz pra gente se funcionou!

1 Curtida

Olá, uma outra alternativa, para casos dinamicos, voce pode usar também a função filter do javascript.

var json = JSON.parse(teste);
var valor = json.data.stage.parametros.filter(par => {return par.valor === "16"});
return valor[0].valor;

Nesse exemplo, criei uma variável com teu objeto json e passei como parâmetro para o escript como explicado. é só ir até a posição do array e usar a função filter pesquisando pelo valor da variável.

Como o filter retorna um array de N posições (uma posição para cada valor 16 que encontrar), será necessário por a posição que deseja, no caso, usei o 0

1 Curtida