Introdução
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados. É fácil de ler e escrever e amplamente utilizado para a troca de dados entre cliente-servidor. Neste laboratório, você aprenderá como usar bibliotecas Java JSON populares, incluindo Jackson, Gson, Genson e Json-io, para serializar e desserializar objetos para o formato JSON.
Configurando o Projeto
- Abra o terminal e navegue até o diretório do projeto executando
cd ~/project. - Crie um novo arquivo Java para este laboratório executando o comando
touch JsonLab.javano terminal e cole o seguinte código:
import java.io.IOException;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA classAObj = new ClassA("Demo", 20.0); // create object to serialize and deserialize later
}
// add ClassA class here
}
Usando a Biblioteca Jackson
- Para trabalhar com Jackson, precisamos adicionar a dependência Maven do Jackson no arquivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
- Em seguida, precisamos serializar e desserializar objetos para uma string JSON usando a classe
ObjectMapper, da seguinte forma:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonLab {
public static void main(String[] args) throws IOException {
ObjectMapper objMapper = new ObjectMapper();
ClassA classAObj = new ClassA("Demo", 20.0);
// Serialization
String jsonString = objMapper.writeValueAsString(classAObj);
System.out.println("Serialized String: " + jsonString);
// Deserialization
ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
System.out.print("Deserialized Object: " + objFromStr.getField1() + " " + objFromStr.getField2());
}
}
Usando a Biblioteca Gson
- Para trabalhar com Gson, precisamos adicionar a dependência Maven do Gson no arquivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
</dependencies>
- Em seguida, precisamos serializar e desserializar objetos usando o objeto
Gson, da seguinte forma:
import com.google.gson.Gson;
public class JsonLab {
public static void main(String[] args) throws IOException {
Gson gson = new Gson();
ClassA obj = new ClassA("Demo", 20.0);
// Serialization
String jsonStrFromObj = gson.toJson(obj);
System.out.println("Serialized String: " + jsonStrFromObj);
// Deserialization
ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
System.out.print("Deserialized Object: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Usando a Biblioteca Genson
- Para trabalhar com Genson, precisamos adicionar a dependência Maven do Genson no arquivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>${genson.version}</version>
</dependency>
</dependencies>
- Em seguida, precisamos serializar e desserializar objetos usando o objeto
Genson, da seguinte forma:
import com.owlike.genson.Genson;
public class JsonLab {
public static void main(String[] args) throws IOException {
Genson genson = new Genson();
ClassA obj = new ClassA("Demo", 20.0);
// Serialization
String jsonStrFromObj = genson.serialize(obj);
System.out.println("Serialized String: " + jsonStrFromObj);
// Deserialization
ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
System.out.print("Deserialized Object: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Usando a Biblioteca Json-io
- Para trabalhar com a biblioteca Json-io, precisamos adicionar a dependência Maven do Json-io no arquivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io</artifactId>
<version>${json-io.version}</version>
</dependency>
</dependencies>
- Em seguida, precisamos serializar e desserializar objetos usando
JsonWritereJsonReader, da seguinte forma:
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA obj = new ClassA("Demo", 20.0);
// Serialization
String jsonStrFromObj = JsonWriter.objectToJson(obj);
System.out.println("Serialized String: " + jsonStrFromObj);
// Deserialization
ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
System.out.print("Deserialized Object: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Resumo
Neste laboratório, você aprendeu como usar várias bibliotecas Java JSON para converter objetos para o formato JSON e vice-versa. Aprendemos como usar as bibliotecas Jackson, Gson, Genson e Json-io para serializar e desserializar objetos para JSON.



