Questão de Programação — JSON — CESPE / CEBRASPE 2023
- Código
- ce154118
- Banca
- CESPE / CEBRASPE
- Órgão
- DATAPREV
- Ano
- 2023
- Nível
- Médio
- Cargo
- Analista de Tecnologia da Informação - Perfil: Sustentação Tecnológica

- CCerto
- EErrado

GabaritoE — Errado
Gabarito: letra E (ERRADO). O código apresentado na imagem não é capaz de realizar a leitura do arquivo dataprev.json e convertê-lo em um objeto R usando a função fromJSON(), pois a função fromJSON() pertence ao pacote jsonlite (ou rjson), que precisa ser carregado antes do uso. Sem a chamada library(jsonlite) (ou require(jsonlite)), o R não reconhece a função e o código falha com erro.
A questão cobra um conhecimento específico da linguagem R: a leitura de arquivos JSON. Diferente do Python, que tem o módulo json embutido, o R não possui uma função nativa para JSON — é necessário instalar e carregar um pacote externo. O pacote mais comum é o jsonlite, que fornece as funções fromJSON() e toJSON(). A função fromJSON() é usada para converter uma string JSON ou um arquivo JSON em um objeto R (como uma lista ou data frame).
Para ler um arquivo JSON, o código típico seria:
library(jsonlite)
dados <- fromJSON("dataprev.json")A função fromJSON() aceita o caminho do arquivo diretamente como argumento, então a leitura do arquivo e a conversão são feitas em uma única chamada. No entanto, o ponto crucial é que o pacote jsonlite deve ser carregado antes. Se o código da imagem não incluir library(jsonlite), a função fromJSON() não estará disponível no ambiente, e o R retornará um erro como "could not find function \"fromJSON\"".
A banca explora exatamente essa pegadinha: o candidato pode saber que fromJSON() é a função certa para converter JSON em R, mas esquecer que ela não é nativa e precisa de um pacote. A questão afirma que "as bibliotecas necessárias estão corretamente instaladas", mas isso não significa que elas estão carregadas. Instalar um pacote (install.packages()) é diferente de carregá-lo (library()). O código precisa explicitamente carregar o pacote antes de usar qualquer função dele.
Além disso, é importante notar que a função fromJSON() do pacote jsonlite é a mais utilizada, mas também existe o pacote rjson, que tem uma função com o mesmo nome. Em ambos os casos, o carregamento do pacote é obrigatório. A ausência dessa etapa torna o código inválido.
A banca troca a instalação pelo carregamento do pacote. O enunciado diz que as bibliotecas estão "instaladas", mas o código não as "carrega" com library(). Instalar (install.packages()) apenas baixa o pacote para o computador; carregar (library()) é o que torna as funções disponíveis na sessão. Sem o library(jsonlite), a função fromJSON() não existe para o interpretador.
O item afirma que o código é capaz de realizar a leitura e conversão do arquivo JSON. Isso está incorreto porque, embora a função fromJSON() seja a função correta para essa tarefa, ela não é nativa do R. O código precisa carregar o pacote que a contém (como jsonlite) antes de usá-la. A simples instalação do pacote não é suficiente; é necessário o comando library(jsonlite) (ou require(jsonlite)) no início do script. Sem isso, o R não reconhece a função e o código falha.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/ce154118