Limite de Tamanho de Variavel String no JavaScript
4 respostas
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.
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.
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!!!
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