Respondido

Como adicionar referência dentro de uma variável


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!!

icon

Melhor resposta por Matheussodre 20 January 2022, 20:00

Veja o original

3 comentários

Matheus,


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

Reputação 7
Crachá +1

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;

}

Comente