Limite de Tamanho de Variavel String no JavaScript
4 respostas
A
aquino.vale
Pessoal estou tendo um problema estranho ao manipular JSON no JavaScript. O problema é o seguinte estou usando Java com Struts no site. Quando acesso uma Action ela retorna Json para uma variavel no .jsp recebo esta variavel já chamando um comando javascript assim:
tecnicamente funciona blz ele me retorna um array de json. Onde eu chamo o eval ou jQuery.parseJSON() e funciona normal. Só que depois q o retorno da Action ficou maior que 1404 caracteres o javascript parou de funcionar e aparece uma mensagem falando que a variavel não foi identificado. Cm alguém já aconteceu algo assim.
Pelo que imagino, o valor do retorno da action contém \n ou \r\n e está quebrando a linha, fazendo com que o Javascript fique com algo assim:
varamigos='aquiquebroualinha' ;
E obviamente isso vai dar um erro de sintaxe. Não deve ser o tamanho da variável em si, porque isso pode ser bastante grande, não só 1404 caracteres. Não se esqueça que outros caracteres (como zero binário, ASCII NUL) podem dar problemas também.
L
lucasmurata
Oi,
o entanglement tem razão,
a capacidade de amazenamento de variável no JS é muito superior. Verifique os caracteres que estão chegando da Action.
A
aquino.vale
blz vou verificar, mas o estranho e que eu uso o site http://jsonlint.com/ para validar o retorno da Action (ver se o json esta correto) e o mesmo não me retorna erro. Vou verificar a entrada de caracteres invalidos, mas o retorno vem do Banco postgres é um chamado de função.
select texto from f_logs();
onde se retorna N linhas com um campo texto contendo JSON e o json e montando direto no BD por trigger…Qdo verifico no browser realmente ele quebra a linha como o entanglement.
Assim que obtiver um resultado retorno ao fórum…vlw pessoal!!!
A
aquino.vale
e ai pessoal, fiz os testes e realmente não funcionou vou colocar aki o retorno do json que funciona e o retorno do json que não funciona no javascript.
Mensagem que aparece no navegador.
json_nao_funciona:20 Uncaught SyntaxError: Unexpected identifier