Scripts blip não lendo jsons corretamente


preciso ler esse json mas o blip lança esse erro aqui

este é o script que estou usando

function run(cityrequest){
result = JSON.parse(cityrequest);
var aux = “”;

for (let key = 0; key < 100; key++) {
    if(result.dados[key].Nome !== null){
        aux = aux.concat(result.dados[key].Id, " - ", result.dados[key].Nome, "\n");
    
    }
       
}

return aux;
}

ele ja leu jsons rigorosamente iguais a esse e em qualquer outro ide o script funciona normalmente. Qual o problema?

1 curtida

Olá @Pedro_Gabriel_Cruz_L ! Tudo bem? Boas-vindas à comunidade!

É possível que a sua variável cityrequest não tenha os 100 elementos indicados no laço for?

Sugiro duas ações para que você possa encontrar o problema:

  • Utilize como condição de parada result.length (considerando que result é o seu array)
  • Trabalhe com try, catch dentro do seu script e tente debugar melhor o problema para entender em qual índice do array o erro ocorre.

na verdade ela só está com 100 elementos por causa do limite de 1000 operações do proprio blip, ela possui mais de 2000 elementos

Então um outro ponto de atenção seria o tamanho do JSON que o script está recebendo.

Recomendo fazer um teste com um array que possui uma quantidade menor de elementos para confirmar.

Mas o JSON em questão me retorna todos os muncípios de um estado do Brasil de minha escolha, sendo esse, o de Minas Gerais, sendo impossível então a diminuição de seu tamanho.
Não há nenhuma alternativa de fazer isso funcionar?

Se possível, confirme se o problema ocorre realmente ao trabalhar com um array muito grande. Você pode fazer um teste reduzindo o número de itens por meio do mock da variável de cityRequest, ou seja, criando uma ação SET Variable por exemplo com valor igual ao array reduzido, antes da execução do script.

Caso o problema seja realmente uma limitação desse tamanho, seria necessário avaliar outras formas de processar esses dados dentro do seu fluxo.

1 curtida