-
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
- var text = '{"text": "hello"}';
- 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.