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