Skip to main content

Olá, gostaria de tirar uma dúvida!

Estou fazendo um bot em que determinado momento eu pego a resposta de uma requisição HTTP através de uma variável chamada response e imprimo assim o .JSON:

{{response}}, só que em determinado momento eu precisei escrever da seguinte forma: {{response@{{retornoMoeda}}BRL.name}} pelo fato do response depender de retornoMoeda que é uma variavel que vem do blobo anterior. Só que claramente abrir e fechar colchetes-duplos dentro de outro colchetes-duplos não funcionou.

Então, queria saber qual o jeito correto (seria aspas simples? duplas? parenteses?) de chamar a variavel (retornoMoeda) dentro de outra variavel (response), se é que é possível de fazer isso…

Desde já agradeço!!

Matheus,

Acabei de ver essa postagem, pode ser que ajude você, uma possível solução seria concatenar esses valores via script:


Hey @Matheussodre !
Boas-vindas à Comunidade! 💙


Eu estava explorando aqui umas possíveis soluções e não foi possível fazer essa concatenação das variáveis direto no componente de texto, como seu exemplo {{response@{{retornoMoeda}}BRL.name}}.

O que seria possível é você rodar um script passando essas duas variáveis de entrada: response e retornoMoeda, e concatenando elas no objeto do JSON, segue um exemplo:

Pensando que o seu JSON retorne algo tipo:

{
    "BRL":{
       "name":"Real"
    },
    "USD":{
       "name":"Dollar"
    }
 }

O seu script seria:

function run(response, moeda) {
  response = JSON.parse(response);
  return response[`${moeda}`].name;
}

Pronto, dai é só salvar o script em uma variável e apresentar essa variável.

Qualquer dúvida é só mandar uma mensagem aqui.
Espero que te ajude.

Abraços.


Perfeito @GabrielPetrone , fiz >quase< que exatamente assim e funcionou perfeitamente. Muito obrigado!! Obrigado também pela ajuda @Pedro_Benevides !!

Segue abaixo meu código:

function run(response,saidaCota) {

            var dadoTreated = JSON.parse(response);
            var moeda;

            moeda = saidaCota;
            moeda += "BRL";

            return dadoTreated[moeda].name;

}