Processamento JSON em Java: visão geral das bibliotecas e exemplos práticos
JSON (JavaScript Object Notation) é um formato leve de troca de dados, amplamente utilizado em desenvolvimento web, aplicativos móveis e microsserviços. Em Java, existem várias bibliotecas populares para trabalhar com JSON. Neste artigo, abordaremos três principais: Jackson, Gson e org.json, além de apresentar exemplos práticos de parsing, serialização e geração de JSON.
1. Jackson — a biblioteca mais popular
Jackson (com.fasterxml.jackson.core) é uma biblioteca poderosa com alto desempenho. Ela suporta anotações, streams e configuração completa de mapeamento. Para adicionar ao Maven:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version></dependency>Exemplo: serialização de objeto em JSON
import com.fasterxml.jackson.databind.ObjectMapper;import java.util.*;
public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();
// Criando um objeto Map<String, Object> user = new HashMap<>(); user.put("name", "Ivan"); user.put("age", 30); user.put("skills", Arrays.asList("Java", "Spring", "SQL"));
// Serialização para string JSON String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); System.out.println(json); }}Saída:
{ "name" : "Ivan", "age" : 30, "skills" : [ "Java", "Spring", "SQL" ]}Exemplo: parsing de JSON para objeto Java
import com.fasterxml.jackson.databind.ObjectMapper;
public class ParseJson { public static void main(String[] args) throws Exception { String json = "{\\"name\\":\\"Anna\\",\\"age\\":25}";
ObjectMapper mapper = new ObjectMapper(); User user = mapper.readValue(json, User.class);
System.out.println("Nome: " + user.getName()); System.out.println("Idade: " + user.getAge()); }}
class User { private String name; private int age;
// getters e setters são obrigatórios 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; }}2. Gson — biblioteca leve e simples do Google
Gson (com.google.code.gson) se destaca pela simplicidade da API e configuração mínima. É adequado para projetos pequenos. Maven:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version></dependency>Exemplo: geração de JSON a partir de Map
import com.google.gson.Gson;import com.google.gson.GsonBuilder;import java.util.*;
public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder().setPrettyPrinting().create();
Map<String, Object> data = new LinkedHashMap<>(); data.put("title", "Exemplo"); data.put("completed", false); data.put("tags", List.of("java", "json"));
String json = gson.toJson(data); System.out.println(json); }}Exemplo: parsing de JSON para lista de objetos
import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;import java.util.*;
public class GsonParseList { public static void main(String[] args) { String json = "[{\\"id\\":1,\\"name\\":\\"Produto A\\"},{\\"id\\":2,\\"name\\":\\"Produto B\\"}]";\ Também na biblioteca
Cliente Elasticsearch para TypeScript: @elastic/elasticsearch
Chai para JavaScript (Node.js): guia completo com exemplos
Trabalhando com CSV em Node.js: bibliotecas csv-parser e csv-writer