Bibliotecas Java Json

JavaBeginner
Pratique Agora

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

  1. Abra o terminal e navegue até o diretório do projeto executando cd ~/project.
  2. Crie um novo arquivo Java para este laboratório executando o comando touch JsonLab.java no 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

  1. 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>
  1. 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

  1. 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>
  1. 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

  1. 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>
  1. 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

  1. 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>
  1. Em seguida, precisamos serializar e desserializar objetos usando JsonWriter e JsonReader, 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.