Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Formatos de Dados: JSON e XML | Noções Básicas de Desenvolvimento Backend
Spring Boot Backend

bookFormatos de Dados: JSON e XML

Nos capítulos anteriores, exploramos como o HTTP funciona e como ele transfere dados. Neste capítulo, analisaremos formatos como JSON e XML, que são formatos utilizados para transmitir dados no corpo de uma resposta do servidor ou ao enviar uma requisição para o servidor.

O que é JSON?

JSON é utilizado para transmitir dados em um formato de chave-valor, o que torna muito prático acessar os dados e convertê-los diretamente em um objeto.

Esse formato suporta arrays, objetos, bem como valores primitivos como strings, números e valores booleanos.

Formatos de Dados em JSON

Para arrays em JSON, pode-se utilizar a seguinte sintaxe:

{
  "courses": ["Math", "Science"]
}

Todas as informações são envolvidas por chaves e o nome da chave (como "courses") é especificado entre aspas. O valor associado a essa chave, neste caso, é um array (["Math", "Science"]), que é delimitado por colchetes para indicar que se trata de um array.

Se quisermos transmitir tipos primitivos simples (como números, strings ou valores booleanos) em JSON, podemos fazer da seguinte forma:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false
}

Podemos transmitir objetos no formato JSON. Um objeto é representado por um conjunto de pares chave-valor delimitados por chaves.

{
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}

Cada chave é uma string e é seguida por um dois-pontos, com o valor correspondente, que pode ser outro objeto, um array, um tipo primitivo ou null.

Transmissão de JSON via HTTP

Ao transmitir dados no formato JSON via HTTP, tanto as requisições quanto as respostas utilizam o cabeçalho Content-Type definido como application/json. Em uma requisição, os dados são colocados no corpo da requisição, enquanto em uma resposta, os dados são colocados no corpo da resposta.

Estrutura da Requisição:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John Doe",
  "age": 30
}

Estrutura da Resposta:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "data": {
     "userId": 12345
   }
}

Serialização e Desserialização JSON

Serialização converte um objeto ou estrutura de dados em um formato adequado para transmissão em rede ou armazenamento em arquivo.

Desserialização é o processo inverso, que converte dados do formato JSON de volta para um objeto ou estrutura de dados para uso no código.

Dependência do vídeo para integração da serialização e desserialização de JSON. Isto é necessário para que seja possível utilizar a classe ObjectMapper.

É necessário inserir esta dependência no arquivo pom.xml e atualizá-lo.

Como usar o Repositório Maven

O que é XML?

XML representa dados utilizando tags que formam uma estrutura hierárquica. Cada elemento possui tags de abertura e fechamento e pode também incluir atributos.

Sintaxe XML

<person>
    <name>John Doe</name>
    <age>30</age>
    <isStudent>false</isStudent>
    <courses>
        <course>Math</course>
        <course>Science</course>
    </courses>
    <address>
        <street>123 Main St</street>
        <city>Anytown</city>
    </address>
</person>

Como pode ser observado, tudo aqui é construído com base em tags. Listas e objetos não são inerentemente diferentes, mas se quisermos representar um valor simples, o nome da tag servirá como a chave, e o valor dentro das tags será o valor.

Transmissão de XML via HTTP:

Para transmitir dados em XML, o header Content-Type pode ser definido como application/xml ou text/xml. Os dados também são inseridos no body da requisição ou resposta.

Exemplo de Requisição:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml

<user>
    <name>John Doe</name>
    <age>30</age>
</user>

Exemplo de Resposta:

HTTP/1.1 200 OK
Content-Type: application/xml

<response>
  <status>success</status>
  <data>
    <userId>12345</userId>
  </data>
</response>

Serialização e Desserialização XML

Dependência do vídeo para integração de serialização e desserialização de XML. Isto é necessário para que seja possível utilizar a classe XmlMapper.

É necessário inserir esta dependência no arquivo pom.xml e atualizá-lo.

Resumo

JSON é a escolha preferencial para aplicações web modernas devido à sua natureza leve e simples. Embora o XML possa ser menos conveniente para muitos cenários web, ele pode ser útil em casos que exigem uma estrutura de dados complexa e esquemas rigorosos.

1. Qual formato é utilizado para representar dados como pares key-value e é mais leve e conveniente para transmissão em rede?

2. Qual dos seguintes trechos de código é um JSON válido?

question mark

Qual formato é utilizado para representar dados como pares key-value e é mais leve e conveniente para transmissão em rede?

Select the correct answer

question mark

Qual dos seguintes trechos de código é um JSON válido?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

What are the main differences between JSON and XML?

Can you explain when to use JSON versus XML?

How does serialization and deserialization work in practice?

Awesome!

Completion rate improved to 3.45

bookFormatos de Dados: JSON e XML

Deslize para mostrar o menu

Nos capítulos anteriores, exploramos como o HTTP funciona e como ele transfere dados. Neste capítulo, analisaremos formatos como JSON e XML, que são formatos utilizados para transmitir dados no corpo de uma resposta do servidor ou ao enviar uma requisição para o servidor.

O que é JSON?

JSON é utilizado para transmitir dados em um formato de chave-valor, o que torna muito prático acessar os dados e convertê-los diretamente em um objeto.

Esse formato suporta arrays, objetos, bem como valores primitivos como strings, números e valores booleanos.

Formatos de Dados em JSON

Para arrays em JSON, pode-se utilizar a seguinte sintaxe:

{
  "courses": ["Math", "Science"]
}

Todas as informações são envolvidas por chaves e o nome da chave (como "courses") é especificado entre aspas. O valor associado a essa chave, neste caso, é um array (["Math", "Science"]), que é delimitado por colchetes para indicar que se trata de um array.

Se quisermos transmitir tipos primitivos simples (como números, strings ou valores booleanos) em JSON, podemos fazer da seguinte forma:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false
}

Podemos transmitir objetos no formato JSON. Um objeto é representado por um conjunto de pares chave-valor delimitados por chaves.

{
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}

Cada chave é uma string e é seguida por um dois-pontos, com o valor correspondente, que pode ser outro objeto, um array, um tipo primitivo ou null.

Transmissão de JSON via HTTP

Ao transmitir dados no formato JSON via HTTP, tanto as requisições quanto as respostas utilizam o cabeçalho Content-Type definido como application/json. Em uma requisição, os dados são colocados no corpo da requisição, enquanto em uma resposta, os dados são colocados no corpo da resposta.

Estrutura da Requisição:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John Doe",
  "age": 30
}

Estrutura da Resposta:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "data": {
     "userId": 12345
   }
}

Serialização e Desserialização JSON

Serialização converte um objeto ou estrutura de dados em um formato adequado para transmissão em rede ou armazenamento em arquivo.

Desserialização é o processo inverso, que converte dados do formato JSON de volta para um objeto ou estrutura de dados para uso no código.

Dependência do vídeo para integração da serialização e desserialização de JSON. Isto é necessário para que seja possível utilizar a classe ObjectMapper.

É necessário inserir esta dependência no arquivo pom.xml e atualizá-lo.

Como usar o Repositório Maven

O que é XML?

XML representa dados utilizando tags que formam uma estrutura hierárquica. Cada elemento possui tags de abertura e fechamento e pode também incluir atributos.

Sintaxe XML

<person>
    <name>John Doe</name>
    <age>30</age>
    <isStudent>false</isStudent>
    <courses>
        <course>Math</course>
        <course>Science</course>
    </courses>
    <address>
        <street>123 Main St</street>
        <city>Anytown</city>
    </address>
</person>

Como pode ser observado, tudo aqui é construído com base em tags. Listas e objetos não são inerentemente diferentes, mas se quisermos representar um valor simples, o nome da tag servirá como a chave, e o valor dentro das tags será o valor.

Transmissão de XML via HTTP:

Para transmitir dados em XML, o header Content-Type pode ser definido como application/xml ou text/xml. Os dados também são inseridos no body da requisição ou resposta.

Exemplo de Requisição:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml

<user>
    <name>John Doe</name>
    <age>30</age>
</user>

Exemplo de Resposta:

HTTP/1.1 200 OK
Content-Type: application/xml

<response>
  <status>success</status>
  <data>
    <userId>12345</userId>
  </data>
</response>

Serialização e Desserialização XML

Dependência do vídeo para integração de serialização e desserialização de XML. Isto é necessário para que seja possível utilizar a classe XmlMapper.

É necessário inserir esta dependência no arquivo pom.xml e atualizá-lo.

Resumo

JSON é a escolha preferencial para aplicações web modernas devido à sua natureza leve e simples. Embora o XML possa ser menos conveniente para muitos cenários web, ele pode ser útil em casos que exigem uma estrutura de dados complexa e esquemas rigorosos.

1. Qual formato é utilizado para representar dados como pares key-value e é mais leve e conveniente para transmissão em rede?

2. Qual dos seguintes trechos de código é um JSON válido?

question mark

Qual formato é utilizado para representar dados como pares key-value e é mais leve e conveniente para transmissão em rede?

Select the correct answer

question mark

Qual dos seguintes trechos de código é um JSON válido?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 5
some-alt