Skip to main content

Boa tarde a todos estou com um objeto com a seguinte estrutura:



[ {chave1:valor, chave2:valor}, {chave1:valor, chave2:valor}]



preciso acessar os dados para usá-los de forma individual, no JS padrão eu consigo acessar esses dados da seguinte forma arraya0].chave1, arraya1].chave2, mas dentro da plataforma do blip isso não parece possível… tentei as notações com o @ (array@0]@chave1, array@,0].chave1)e não obtive sucesso também…



nunca trabalhei com essa notação de @… alguem mais familiarizado com a plataforma pode me indicar algo?



obrigado.

Hey, Blipper!



Infelizmente o BLiP não tem suporte a esse tipo de acesso, para qualquer outra dúvida estamos aqui!


Olá, vcs teriam alguma sugestão de como tratar?


Então Geraldo, a ideia é você sempre manter a estrutura de:



{

chave1:valor,

chave2:valor,

chave3:valor,

chave4:valor

}



E você pode fazer isso através de script.


Precisa pegar esse teu JSON e inserir ele na execução de script do blip, dentro desta execução, você consegue montar um JSON que permita o blip acessar como o @fadoaglauss comentou.


Eu deveria salvar cada objeto em uma variável então? Seria isso ?


Segue um exemplo simples do que poderias fazer



Meu endpoint retorna um objeto JSON



Ex:



{

"menuhorarios": [

{

"opcao": 1,

"horario": "03/05/21 08:00",

"service": 84,

"item": 299,

"descricao": "CONSULTA",

"medico": 1967,

"nmmedico": "Rodrigo",

"diasemana": "SEGUNDA-FEIRA - 03/05/21"

},

{

"opcao": 2,

"horario": "03/05/21 08:30",

"service": 84,

"item": 299,

"descricao": "CONSULTA",

"medico": 1967,

"nmmedico": "Rodrigo",

"diasemana": "SEGUNDA-FEIRA - 03/05/21"

}

}



Com isso, recebo o objeto no meu script



        function run(data) {

const dados = JSON.parse(data);



let menu = '';

let lastday = '';



menu = 'Por favor, Digite o numero correspondente a opção desejada:\n\n';

dados.menuhorarios.forEach(h => {

menu += `*${h.opcao}* - ${h.horario} - ${h.nmmedico}\n`;

});

return menu;

}



Desta forma, exibir o menu como texto.


Rodrigo entendi! porem estou usando um carrousel, mas acabei fazendo da forma que comentei salvei cara Objeto numa variável e usei elas para apresentar os dados no carrousel.


Obrigado pelo apoio @fadoaglauss e @Rodrigo_Valentim


Para acessar os elementos do array individualmente, você pode converter o array em um dictionary. Ex:



function run() {

const animais =

{

descricao: "cachorro",

tamanho: "médio",

idade: 5

},

{

descricao: "gato",

tamanho: "pequeno",

idade: 3

}

];

const animaisDictionary = arrayToDictionary(animais);

return JSON.stringify(animaisDictionary);

}



function arrayToDictionary(array) {

const dictionary = {};

array.forEach((value, index) => {

dictionaryrindex] = value;

});

return dictionary;

}



Nesse exemplo eu salvei o retorno do script na variável animais. No builder você pode acessar os dados dessa forma:



image



Caso você queira manter o índice do array basta usar a Spread syntax. Ex:



function arrayToDictionary(array) {

return { ...array };

}


Ei @Geraldo_Vilela!



Corre aqui que o @Sylvester_Henrique trouxe uma solução. Você consegue fazer um teste e ver se funciona?


Comente