Considere o trecho abaixo. <h1 id="teste"></h1> <script> ----- const x = JSON.parse(xpto); document.getElementById("teste").innerHTML = x.alunos[1].nome + " " + x.alunos[1].sobreNome; </script> Para que o nome Maria Bueno seja exibido no elemento da primeira linha (tag h1), o trecho tracejado deve ser substituído por:
- A)let '{"alunos":[' + '{"nome":"Maria","sobreNome":"Bueno" },' + '{"nome":"Edson","sobreNome":"Arantes" }]}';
Errada, porque não define a variável xpto e ainda apresenta uma string JSON mal estruturada para o que o código espera.
- B)let '{"xpto":[' + '{"nome":"Edson","sobreNome":"Arantes" },' + '{"nome":"Maria","sobreNome":"Bueno" }]}';
Errada, porque a chave externa não é xpto no JSON acessado, e além disso o trecho não atribui corretamente o conteúdo à variável xpto.
- C)let alunos = '{"xpto":[' + '{"nome":"Edson","sobreNome":"Arantes" },' + '{"nome":"Maria","sobreNome":"Bueno" }]}';
Errada, porque cria a variável alunos, mas o script tenta fazer JSON.parse(xpto), então o nome da variável não bate com o código.
- D)let xpto = '{"alunos":[' + '{"nome":"Edson","sobreNome":"Arantes" },' + '{"nome":"Maria","sobreNome":"Bueno" }]}';
Certa, porque define a variável xpto com um JSON válido contendo a chave alunos e o segundo elemento com nome Maria e sobreNome Bueno.
- E)let xpto = alunos '{[' + '{nome:"Edson",sobreNome:"Arantes" },' + '{nome:"Maria",sobreNome:"Bueno" }]}';
Errada, porque a sintaxe está quebrada em vários pontos, com aspas, chaves e nomes de campos fora do padrão JSON.
Gabarito: D
A ideia aqui é simples: o código faz JSON.parse(xpto), então a variável xpto precisa conter uma string com JSON válido. Depois, o JavaScript acessa x.alunos[1].nome e x.alunos[1].sobreNome, ou seja, espera um objeto com a chave alunos, que seja um array, e que o segundo elemento desse array tenha os campos nome e sobreNome. Em JSON, chaves e valores de texto precisam estar entre aspas duplas, e a estrutura tem de bater exatamente com o acesso feito no script. No caso, o trecho precisa criar uma variável chamada xpto com uma string JSON que tenha "alunos" contendo dois objetos. O segundo objeto deve ser {"nome":"Maria","sobreNome":"Bueno"}, porque o índice [1] pega o segundo item do array. Assim, a concatenação no innerHTML resulta em "Maria Bueno". O gabarito D está correto porque define exatamente isso: let xpto = '{"alunos":[{"nome":"Edson","sobreNome":"Arantes" },{"nome":"Maria","sobreNome":"Bueno" }]}';. Repare que a variável tem o nome certo, o JSON está bem formado e a chave alunos existe com a posição 1 apontando para Maria Bueno. O resto é só o JavaScript fazendo o trabalho sem drama. Não há fundamento legal ou jurisprudencial aqui, porque é matéria de linguagem de programação e sintaxe de JSON, não de direito.