Trabalhando com JSON em Java: parsing e serialização para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é JSON e para que serve em Java?



JSON (JavaScript Object Notation) é um formato leve de troca de dados, fácil de ler por humanos e fácil de processar por programas. No desenvolvimento Java moderno, o JSON é usado em toda parte: desde arquivos de configuração até requisições de API para serviços web.



Trabalhar com JSON em Java envolve duas ações principais:

  • Serialização — conversão de um objeto Java em uma string JSON.
  • Parsing (desserialização) — conversão de uma string JSON de volta para um objeto Java.


Nesta aula, vamos abordar como realizar essas operações usando duas bibliotecas populares: Jackson e Gson. Os exemplos são adequados até mesmo para desenvolvedores iniciantes.



Preparação do projeto e inclusão das bibliotecas



Para começar, precisaremos de um projeto Java. Usaremos o Maven para gerenciar as dependências. Crie um novo projeto Maven e adicione as seguintes dependências no arquivo pom.xml:



Adicionando Jackson

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.17.1</version></dependency>


Adicionando Gson

<dependency>    <groupId>com.google.code.gson</groupId>    <artifactId>gson</artifactId>    <version>2.11.0</version></dependency>


Ambas as bibliotecas podem ser usadas simultaneamente em um mesmo projeto. Após atualizar o Maven, as dependências serão baixadas automaticamente.



Criando uma classe Java para o exemplo



Para demonstração, vamos criar uma classe simples User, que será serializada e parseada:



public class User {    private String name;    private int age;    private String email;

// Construtor vazio obrigatório para desserialização public User() {}

public User(String name, int age, String email) { this.name = name; this.age = age; this.email = email; }

// Getters e Setters (obrigatórios para Jackson) public String getName() { return name; } public void setName(String name) { this.name = name; }

public int getAge() { return age; } public void setAge(int age) { this.age = age; }

public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}


Importante: Para o funcionamento correto das bibliotecas, a classe deve ter:

  • Um construtor vazio (sem argumentos).
  • Getters e Setters para todos os campos (obrigatório para Jackson; para Gson, apenas getters são suficientes).


Serialização de um objeto Java para JSON



Serialização é o processo de transformar um objeto em uma string. Vamos analisar ambas as abordagens.



Exemplo com Jackson

import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); User user = new User("Ana", 25, "ana@exemplo.com");

// Serialização para string String json = mapper.writeValueAsString(user); System.out.println(json); }}


Resultado da execução:

{"name":"Ana","age":25,"email":"ana@exemplo.com"}


Exemplo com Gson

import com.google.gson.Gson;

public class GsonExample { public static void main(String[] args) { Gson gson = new Gson(); User user = new User("Ana", 25, "ana@exemplo.com");

// Serialização para string String json = gson.toJson(user); System.out.println(json); }}


O resultado será idêntico. Ambas as bibliotecas lidam com a tarefa igualmente bem

Blogs

Book Recommendations