Introducción
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos. Es fácil de leer y escribir y se utiliza ampliamente para el intercambio de datos entre cliente-servidor. En este laboratorio, aprenderá a usar las populares bibliotecas Java JSON, como Jackson, Gson, Genson y Json-io, para serializar y deserializar objetos al formato JSON.
Configurando el proyecto
- Abra la terminal y navegue hasta el directorio del proyecto ejecutando
cd ~/proyecto. - Cree un nuevo archivo Java para este laboratorio ejecutando el comando
touch JsonLab.javaen la terminal y pegue el siguiente código:
import java.io.IOException;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA classAObj = new ClassA("Demo", 20.0); // crear objeto para serializar y deserializar más adelante
}
// agregue la clase ClassA aquí
}
Usando la biblioteca Jackson
- Para trabajar con Jackson, necesitamos agregar la dependencia de Maven de Jackson en el archivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
- A continuación, necesitamos serializar y deserializar objetos a una cadena JSON usando la clase
ObjectMapperde la siguiente manera:
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);
// Serialización
String jsonString = objMapper.writeValueAsString(classAObj);
System.out.println("Cadena serializada: " + jsonString);
// Deserialización
ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
System.out.print("Objeto deserializado: " + objFromStr.getField1() + " " + objFromStr.getField2());
}
}
Usando la biblioteca Gson
- Para trabajar con Gson, necesitamos agregar la dependencia de Maven de Gson en el archivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
</dependencies>
- A continuación, necesitamos serializar y deserializar objetos usando el objeto
Gsonde la siguiente manera:
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);
// Serialización
String jsonStrFromObj = gson.toJson(obj);
System.out.println("Cadena serializada: " + jsonStrFromObj);
// Deserialización
ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
System.out.print("Objeto deserializado: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Usando la biblioteca Genson
- Para trabajar con Genson, necesitamos agregar la dependencia de Maven de Genson en el archivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>${genson.version}</version>
</dependency>
</dependencies>
- A continuación, necesitamos serializar y deserializar objetos usando el objeto
Gensonde la siguiente manera:
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);
// Serialización
String jsonStrFromObj = genson.serialize(obj);
System.out.println("Cadena serializada: " + jsonStrFromObj);
// Deserialización
ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
System.out.print("Objeto deserializado: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Usando la biblioteca Json-io
- Para trabajar con la biblioteca Json-io, necesitamos agregar la dependencia de Maven de Json-io en el archivo
pom.xml:
<dependencies>
<dependency>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io</artifactId>
<version>${json-io.version}</version>
</dependency>
</dependencies>
- A continuación, necesitamos serializar y deserializar objetos usando
JsonWriteryJsonReaderde la siguiente manera:
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);
// Serialización
String jsonStrFromObj = JsonWriter.objectToJson(obj);
System.out.println("Cadena serializada: " + jsonStrFromObj);
// Deserialización
ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
System.out.print("Objeto deserializado: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Resumen
En este laboratorio, aprenderá a usar varias bibliotecas JSON de Java para convertir objetos al formato JSON y viceversa. Aprendimos cómo usar las bibliotecas Jackson, Gson, Genson y Json-io para serializar y deserializar objetos a JSON.



