Title: Desenvolvimento de Software / JSON
Tags: Desenvolvimento_de_Software Resumo
On every note of this deck, unless a note says otherwise:
tldr: - O que é JSON (JavaScript Object Notation)
- Formato de texto para troca de dados entre sistemas (muito usado na internet e em APIs).
- Independe de linguagem, apesar do nome; é aceito na maioria das linguagens.
- Estrutura baseada em objetos do JavaScript: pares atributo/valor, separados por vírgulas e envoltos em {}.
- Por que JSON é tão adotado (vs. XML)
- Maior legibilidade para humanos.
- Baixa verbosidade (não usa tags por elemento), ficando geralmente mais leve.
- Maior velocidade de processamento em comparação com formatos como XML.
- Alta compatibilidade: a maioria das APIs modernas suporta JSON.
- Integração com JavaScript: suporte nativo e métodos dedicados.
- Regras principais de sintaxe
- Dados em pares chave: valor e separados por vírgulas.
- [] indicam arrays e {} indicam objetos.
- Diferença importante do JS: em JSON, as chaves devem ser strings, ou seja, entre aspas duplas (ex.: "nome": "...").
- Tipos de dados suportados (padrão semelhante ao JavaScript)
- String, Number (inteiro ou float), Object, Array, Boolean, Null.
- Exemplos citados:
  - String: {"nome":"Estratégia"}
  - Number: {"nota":7.39}
  - Array: {"professores":["Felipe","Paolla"]}
  - Boolean: {"aprovado":true}
  - Null: {"pendencias":null}
- JSON e persistência (bancos orientados a documentos)
- Bancos orientados a documentos são adequados para dados com características comuns, mas também variações entre registros.
- JSON é um formato muito usado para representar/armazenar dados nesse contexto.
- Parse e conversões em JavaScript
- JSON.parse(): converte texto JSON → objeto utilizável no JavaScript (comum em respostas HTTP).
- JSON.stringify(): converte objeto → string JSON.
- eval() pode converter texto JSON em objeto em ambientes sem JSON.parse, mas executa a string como código JavaScript (uso citado como alternativa para navegadores antigos).
- Representação de dados tabulares (SQL → JSON)
- JSON não define uma estrutura padrão para dados tabulares; uma abordagem comum é:
  - um array de colunas e um array de linhas, onde cada linha é um array.
- Exemplo dado:
  - "colunas": ["ID","Nome","Idade","País"]
  - "linhas": [[1,"João",30,"Brasil"], [2,"Maria",25,"EUA"], [3,"Carlos",40,"Espanha"]]
- Comentários
- JSON não aceita comentários (por ser formato de dados, não linguagem).
- Alternativa recomendada: criar um par chave-valor para “comentário”, por exemplo: "_comentario": "...".
- JSON Schema (validação de estrutura)
- JSON é semiestruturado (sem formato obrigatório), então pode ser necessário impor um padrão.
- JSON Schema valida se um JSON segue regras definidas (exemplo usa draft-07 do json-schema.org).
- No exemplo “Book”:
  - type: "object" com properties (title, author, published_year, isbn)
  - Restrições: published_year com mínimo 1900 e máximo 2024; isbn com regex ^\d{3}-\d{10}$
  - required: ["title","author","published_year"]
  - additionalProperties: false (não permite campos extras além dos definidos).
link: https://documentacao.online/estudos/a1vb.html

front: CEBRASPE/CNPq/2024) No que se refere a serviços de integração, julgue o item que se segue. A sequência a seguir é uma lista que representa um objeto no formato JSON. {atributo1:valor1 , atributo2:valor 2}
response: Certo
comment: Arquivos JSON são conjuntos de dados em atributo:valor, envoltos de chaves {}. (Gabarito: Certo)
title: JSON
Other fields (not shown on cards):
back: Certo - Arquivos JSON são conjuntos de dados em atributo:valor, envoltos de chaves {}. (Gabarito: Certo)

front: (CEBRASPE/TCE SC/2016) 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 + ")");
response: Certo
comment: Perfeito, aluno. O eval() é a uma das formas de transformarmos um arquivo JSON, que é interpretado como uma string, em um objeto dentro do JavaScript, permitindo a aplicação de métodos de manipulação. (Gabarito: Certo)
title: JSON
Other fields (not shown on cards):
back: Certo - Perfeito, aluno. O eval() é a uma das formas de transformarmos um arquivo JSON, que é interpretado como uma string, em um objeto dentro do JavaScript, permitindo a aplicação de métodos de manipulação. (Gabarito: Certo)

front: (Inédita/Prof. ) Assinale a alternativa que aponta o comando a ser utilizado para converter um arquivo JSON em um objeto que pode ser manipulado pelo JavaScript:
a) JSON.purge
b) JSON.pause
c) JSON.convert
d) JSON.parse
e) JSON.object
response: Letra D
comment: Comnetários: Ao recebermos um arquivo JSON, que estará em formato de texto (string), é necessário transformá-lo em objeto para corretamente manipular suas propriedades, acessar suas chaves, entre outros. Para isso, usa-se o JSON.parse. (Gabarito: Letra D)
title: JSON
Other fields (not shown on cards):
back: Letra D - Comnetários: Ao recebermos um arquivo JSON, que estará em formato de texto (string), é necessário transformá-lo em objeto para corretamente manipular suas propriedades, acessar suas chaves, entre outros. Para isso, usa-se o JSON.parse. (Gabarito: Letra D)

front: (CEBRASPE/PREF. FORTALEZA/2023) Acerca de HTTPRequest e JSON, julgue o próximo item. O processo de adição de comentários em arquivos JSON é igual ao das linguagens de programação, pois, assim como estes, tipicamente ignora comentários quando são executados.
response: Errado
comment: O JSON não suporta comentários “tradicionais”. Uma forma de sobrepor isso é criando pares de chave-valor que são facilmente identificados como comentários - mas, apesar disso, essa linha ainda será interpretada pelo compilador. Dessa forma, a alternativa está incorreta. (Gabarito: Errado)
title: JSON
Other fields (not shown on cards):
back: Errado - O JSON não suporta comentários “tradicionais”. Uma forma de sobrepor isso é criando pares de chave-valor que são facilmente identificados como comentários - mas, apesar disso, essa linha ainda será interpretada pelo compilador. Dessa forma, a alternativa está incorreta. (Gabarito: Errado)

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre as tecnologias Web, julgue o item abaixo. É possível criar uma estrutura; ao mais forte aos arquivos JSON, exigindo sua validação, a partir do uso do Esquema JSON, ou JSON Schema.
response: Certo
comment: Certinho! O JSON Schema é responsável por definir alguns padrões para o arquivo JSON, como tipo de dado, tamanho, tipo de informação e campos obrigatórios. (Gabarito: Certo)
title: JSON
Other fields (not shown on cards):
back: Certo - Certinho! O JSON Schema é responsável por definir alguns padrões para o arquivo JSON, como tipo de dado, tamanho, tipo de informação e campos obrigatórios. (Gabarito: Certo)

front: (CEBRASPE/SEPLAN RR/2023) Com relação a programação e desenvolvimento de sistemas, julgue o item a seguir. A seguinte notação em JSON representa corretamente a propriedade de “Nome” para as empresas A e B. {“Empresas”:[{“Nome”:”A”},{“Nome”:”B”}]}
response: Correto
comment: Quando vamos elencar atributos compostos e de “mesmo nível”, como é o caso das empresas, podemos fazer isso através de uma array, representada pelos colchetes []. Para cada empresa criaremos um objeto dentro dessa array, que receberá suas características. E é exatamente isso que a questão fez - portanto, correta.
title: JSON
Other fields (not shown on cards):
back: Correto - Quando vamos elencar atributos compostos e de “mesmo nível”, como é o caso das empresas, podemos fazer isso através de uma array, representada pelos colchetes []. Para cada empresa criaremos um objeto dentro dessa array, que receberá suas características. E é exatamente isso que a questão fez - portanto, correta.

front: (FGV/TCE ES/2023) Pedro está desenvolvendo um programa que manipula dados do tipo Arrays (Vetores) no formato JSON. Para representar dados desse tipo, Pedro deve usar a sintaxe:
a) {"venda":true}
b) {"nome":"John"}
c) {"idade":null}
d) {"cadastro":["Joao", "Ana", "Pedro"]}
e) {"pessoa":{"nome":"Joao", "idade":30, "estado":"ES"}}
response: Letra D
comment: As arrays em JSON são representadas a partir de um par de colchetes [ ]. A alternativa que apresenta a sintaxe é a letra D - que cria uma array para a chave "cadastro". 4
title: JSON
Other fields (not shown on cards):
back: Letra D - As arrays em JSON são representadas a partir de um par de colchetes [ ]. A alternativa que apresenta a sintaxe é a letra D - que cria uma array para a chave "cadastro". 4

front: (IADES/SEPLAD DF/2023) Qual é o caractere que delimita um array em uma estrutura JSON?
a) Parênteses
b) Colchetes
c) Chaves
d) Asteriscos
e) Cifrões
response: Letra B
comment: Você já deve ter percebido que a cobrança vem pesada nas arrays em JSON, né? Lembre-se, as arrays são representadas por pares de colchetes [].
title: JSON
Other fields (not shown on cards):
back: Letra B - Você já deve ter percebido que a cobrança vem pesada nas arrays em JSON, né? Lembre-se, as arrays são representadas por pares de colchetes [].

front: (FUMARC/ALMG/2023) Analise as afirmativas a seguir referentes ao formato JSON:
I – JSON é um acrônimo de JavaScript Object Notation.
II – JSON é um formato para intercâmbio de dados.
III – Um objeto JSON começa com uma “{“ e termina com uma “}”.
Estão CORRETAS as afirmativas:
a) I e II, apenas.
b) I e III, apenas.
c) II e III, apenas.
d) I, II e III.
response: Letra D
comment: Vamos analisar os itens. 5 I. Certo. Esse é o significado de JSON. II. Certo. O JSON é destinado a intercâmbio de dados entre sistemas. III. Certo. Identificamos arquivos JSON pela presença de pares de chaves {}. Portanto, todos os itens são corretos.
title: JSON
Other fields (not shown on cards):
back: Letra D - Vamos analisar os itens. 5 I. Certo. Esse é o significado de JSON. II. Certo. O JSON é destinado a intercâmbio de dados entre sistemas. III. Certo. Identificamos arquivos JSON pela presença de pares de chaves {}. Portanto, todos os itens são corretos.

front: (FCC/MPE PB/2023) Considere as propriedades abaixo, seus valores e tipos de dados.
- id, tipo numérico, contendo o valor 432.
- nome, cadeia de caracteres, contendo o valor Paulo.
- cargo, cadeia de caracteres, contendo o valor Promotor.
A forma adequada de criar um objeto JSON contendo estes valores é
a) ["id":432, "nome":"Paulo", "cargo":"Promotor"]
b) {number["id":432], String["nome":"Paulo", "cargo":"Promotor"]}
c) {id[number]:432, nome[string]:"Paulo", cargo[string]:"Promotor"}
d) [int id=432, String nome="Paulo", String cargo="Promotor"]
e) {"id":432, "nome":"Paulo", "cargo":"Promotor"}
response: Letra E
comment: Vamos converter cada linha. - id, tipo numérico, contendo o valor 432. {“id” : 432} - nome, cadeia de caracteres, contendo o valor Paulo. {“nome” : “Paulo”} - cargo, cadeia de caracteres, contendo o valor Promotor. {“cargo” : “Promotor”} A alternativa que, corretamente, traz todas as conversões é a letra E.
title: JSON
Other fields (not shown on cards):
back: Letra E - Vamos converter cada linha. - id, tipo numérico, contendo o valor 432. {“id” : 432} - nome, cadeia de caracteres, contendo o valor Paulo. {“nome” : “Paulo”} - cargo, cadeia de caracteres, contendo o valor Promotor. {“cargo” : “Promotor”} A alternativa que, corretamente, traz todas as conversões é a letra E.

front: (FUNDATEC/BRDE/2023) Sobre o JSON (JavaScript Object Notation), assinale a alternativa que apresenta um tipo de dado não suportado.
a) date
b) string
c) number
d) boolean
e) array
response: Letra A
comment: Dos tipos apresentados, aquele não suportado pelo JSON está na letra A - o formato DATE. Temos um conjunto de tipos de dado usados no JavaScript que não são suportados pelo JSON: ● Date ● Função ● Undefined Portanto, nosso gabarito é a letra A.
title: JSON
Other fields (not shown on cards):
back: Letra A - Dos tipos apresentados, aquele não suportado pelo JSON está na letra A - o formato DATE. Temos um conjunto de tipos de dado usados no JavaScript que não são suportados pelo JSON: ● Date ● Função ● Undefined Portanto, nosso gabarito é a letra A.

front: (FEPESE/PREF. B. CAMBORIÚ/2023) São tipos de dados JSON válidos:
1. Null
2. Data
3. Array
4. Undefined
5. Booleano
Assinale a alternativa que indica todas as afirmativas corretas.
a) São corretas apenas as afirmativas 2 e 4.
b) São corretas apenas as afirmativas 3 e 5. 7
c) São corretas apenas as afirmativas 1, 2 e 3.
d) São corretas apenas as afirmativas 1, 3 e 5.
e) São corretas apenas as afirmativas 3, 4 e 5.
response: Letra D
comment: Vamos listar os tipos de dados permitidos e vedados? Analisando a lista, os tipos de dados permitidos são o 1, 3 e 5, enquanto 2 e 4 são vedados.
title: JSON
Other fields (not shown on cards):
back: Letra D - Vamos listar os tipos de dados permitidos e vedados? Analisando a lista, os tipos de dados permitidos são o 1, 3 e 5, enquanto 2 e 4 são vedados.