Como manipular arquivos JSON em Java?
O JSON é um dos formatos mais utilizados para armazenamento e troca de dados. Em Java, podemos manipular arquivos JSON utilizando bibliotecas como Jackson e Gson para converter objetos Java em JSON e vice-versa.
1. Usando Jackson para Manipular JSON
A biblioteca Jackson é amplamente utilizada para leitura e escrita de JSON em Java.
1.1. Adicionando a Dependência (Maven)
Caso esteja usando Maven, adicione Jackson ao seu projeto:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.0</version>
</dependency>
1.2. Criando uma Classe Java
Antes de ler e escrever JSON, precisamos de uma classe modelo.
public class Usuario {
private String nome;
private int idade;
public Usuario() {}
public Usuario(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
public String getNome() { return nome; }
public int getIdade() { return idade; }
}
1.3. Convertendo um Objeto Java para JSON
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
public class EscreverJSON {
public static void main(String[] args) {
try {
Usuario usuario = new Usuario("João", 30);
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("usuario.json"), usuario);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Este código cria um arquivo usuario.json
contendo os dados do objeto.
1.4. Lendo um JSON para um Objeto Java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
public class LerJSON {
public static void main(String[] args) {
try {
ObjectMapper mapper = new ObjectMapper();
Usuario usuario = mapper.readValue(new File("usuario.json"), Usuario.class);
System.out.println("Nome: " + usuario.getNome());
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. Usando Gson para Manipular JSON
Se preferir, a biblioteca Gson, do Google, também pode ser usada.
2.1. Adicionando a Dependência (Maven)
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
2.2. Convertendo um Objeto para JSON com Gson
import com.google.gson.Gson;
import java.io.FileWriter;
public class EscreverJSONGson {
public static void main(String[] args) {
try {
Usuario usuario = new Usuario("Maria", 25);
Gson gson = new Gson();
FileWriter writer = new FileWriter("usuario_gson.json");
gson.toJson(usuario, writer);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.3. Lendo JSON com Gson
import com.google.gson.Gson;
import java.io.FileReader;
public class LerJSONGson {
public static void main(String[] args) {
try {
Gson gson = new Gson();
FileReader reader = new FileReader("usuario_gson.json");
Usuario usuario = gson.fromJson(reader, Usuario.class);
reader.close();
System.out.println("Nome: " + usuario.getNome());
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. Quando Usar Jackson ou Gson?
Biblioteca | Vantagens |
---|---|
Jackson | Mais completa, suporta diversos formatos |
Gson | Mais leve e fácil de usar |
Conclusão
A manipulação de arquivos JSON em Java é facilitada por bibliotecas como Jackson e Gson, que permitem conversão rápida entre objetos e JSON. A escolha entre as bibliotecas depende da necessidade da aplicação.
Por que JSON é essencial no desenvolvimento de software moderno?
JSON é um dos formatos mais usados para armazenar e transferir dados entre sistemas. APIs REST, bancos de dados NoSQL e aplicações web frequentemente utilizam JSON para comunicação entre clientes e servidores. A escolha da biblioteca correta para manipular JSON em Java impacta diretamente a performance e a facilidade de manutenção do código.
Algumas aplicações:
- Armazenamento de dados estruturados
- Troca de informações entre sistemas
- Configuração de aplicativos
- Manipulação de APIs REST
Dicas para quem está começando
- Use Jackson para projetos mais complexos
- Prefira Gson para aplicações mais leves
- Trate exceções para evitar erros na leitura de arquivos JSON
- Teste diferentes bibliotecas para escolher a mais adequada ao seu projeto
- Evite modificar arquivos JSON diretamente sem backup
Contribuições de Rodrigo Farias