SóProvas


ID
1932607
Banca
CESPE / CEBRASPE
Órgão
TCE-SC
Ano
2016
Provas
Disciplina
Programação
Assuntos

Julgue o item que se segue a respeito dos padrões XSLT e JSON.

Em navegadores que não possuem apoio para a função JavaScript JSON.parse, pode-se utilizar a função eval para converter um texto JSON em um objeto JavaScript, por meio da sintaxe apresentada a seguir.

var obj = eval ("(" + text + ")");

Alternativas
Comentários
  • Há navegadores que realmente não suportam JSON.parse( ). A solução de contorno realmente é usar eval( ) e converter o texto JSON em um objeto JS – você deixará o sistema mais vulnerável a ataques, por isso não é a solução ideal. Galera, fiquem tranquilos! Essa questão foi feita para que ninguém acertasse mesmo – eu tive que pesquisar!

    http://www.estrategiaconcursos.com.br/blog/tcesc-2016-comentarios-da-prova-de-engenharia-de-software-e-desenvolvimento/

  • Questão copiada e traduzida do W3Schools e com o mesmo exemplo, inclusive: FONTE: http://www.w3schools.com/json/json_eval.asp     

  • Corrigindo o link do colega Lázaro: https://www.w3schools.com/js/js_json_eval.asp

  • "Galera, fiquem tranquilos! Essa questão foi feita para que ninguém acertasse mesmo – eu tive que pesquisar!"

     

    pra quem já programou JS na vida a questao nao é nenhum bicho de 7 cabeças nao

  • WTF? não deveriam ser chaves no lugar dos parênteses?

  • Gabarito: CERTO

    1. var text = '{"text": "hello"}';
    2. var obj = eval('(' + text + ')');

    eval accepts a sequence of JavaScript statements. The JavaScript parser interprets the ‘{’ token, occurring within a statement as the start of a block and not the start of an object literal.

    When you enclose your literal into parentheses like this: ({ text }) you are switching the JavaScript parser from statement parsing mode into expression parsing mode.

    The token ‘{’ inside an expression means the start of an object literal declaration and not a block, and thus JavaScript accepts it as an object literal.