1
resposta

Desafio: hora da prática

Conceitos abordados: Utilização do conceito de Record em Java para representar dados de maneira concisa. Utilização da biblioteca Gson para converter objetos JSON em objetos Java. Flexibilidade no processo de deserialização para lidar com campos ausentes ou adicionais no JSON. Estruturas de dados aninhadas para lidar com objetos complexos no JSON, como um livro com uma editora.

import com.google.gson.Gson;

// Criando o Record Pessoa public record Pessoa(String nome, int idade, String cidade) { }

class Editora { String nome; String endereco;

// Construtores, getters e setters (se necessário)
public Editora(String nome, String endereco) {
    this.nome = nome;
    this.endereco = endereco;
}

}

// Classe Livro com a Editora como atributo public class Livro { String titulo; String autor; Editora editora;

// Construtores, getters e setters (se necessário)
public Livro(String titulo, String autor, Editora editora) {
    this.titulo = titulo;
    this.autor = autor;
    this.editora = editora;
}

}

public class Main { public static void main(String[] args) {

    // Atividade 1 - Criando a classe Pessoa e convertendo o JSON para um objeto Pessoa
    String jsonPessoa = "{\"nome\": \"João\", \"idade\": 25, \"cidade\": \"São Paulo\"}";
    
    Gson gson = new Gson();
    
    // Convertendo o JSON para um objeto Pessoa
    Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);
    System.out.println(pessoa); // Exibe a pessoa criada a partir do JSON
    
    // Atividade 2 - Modificando o programa para lidar com campos ausentes
    // JSON sem o campo "cidade"
    String jsonPessoaIncompleto = "{\"nome\": \"João\", \"idade\": 25}";
    
    // Convertendo o JSON para um objeto Pessoa
    Pessoa pessoaIncompleta = gson.fromJson(jsonPessoaIncompleto, Pessoa.class);
    System.out.println(pessoaIncompleta); // Exibe a pessoa criada, com campos ausentes
    
    // Atividade 3 - Criando a classe Livro com a Editora e tratando um JSON aninhado
    String jsonLivro = "{"
        + "\"titulo\": \"Java para Iniciantes\","
        + "\"autor\": \"João Silva\","
        + "\"editora\": {\"nome\": \"Editora ABC\", \"endereco\": \"Rua XYZ, 123\"}"
        + "}";
    
    // Convertendo o JSON para um objeto Livro
    Livro livro = gson.fromJson(jsonLivro, Livro.class);
    
    // Exibe as informações do livro
    System.out.println("Título: " + livro.titulo);
    System.out.println("Autor: " + livro.autor);
    System.out.println("Editora: " + livro.editora.nome);
    System.out.println("Endereço da Editora: " + livro.editora.endereco);
}

}

1 resposta

Oi, Camila! Como vai?

Seu código mostra uma ótima compreensão dos conceitos abordados: uso de record, manipulação de JSON com Gson e tratamento de dados aninhados. A forma como você organizou as etapas facilita bastante a leitura e o entendimento.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!