1
resposta

[Projeto] Desafio hora prática

1)

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        String JsonPessoa = """
                {
                  "nome": "João Silva",
                  "idade": 25,
                  "cidade": "São Paulo"
                }
                """;

        Gson gson = new Gson();
        Pessoa pessoa = gson.fromJson(JsonPessoa, Pessoa.class);

        System.out.println("Objeto Pessoa: "+ pessoa);


    }
}
public record Pessoa(String nome, Integer idade, String cidade) {
}

2)

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class ConversaoJsonParaObjtoFlexivel {
    public static void main(String[] args) {
        String jsonPessoa = "{nome:\"Rodrigo\",\"cidade\":\"Brasília\"}"; //Erro: a chave nome deveria estar entre aspas. "{\"nome\":\"Rodrigo\"

        Gson gson = new GsonBuilder().setLenient().create(); // O método setLenient() configura o Gson para aceitar JSON malformado ou fora do padrão oficial
        Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);

        System.out.println("Objeto Pessoa: " + pessoa);
    }
}

3)

public class Livro {
    private String titulo;
    private String autor;
    private Editora editora;

    @Override
    public String toString() {
        return "Livro{" +
                "titulo='" + titulo + '\'' +
                ", autor='" + autor + '\'' +
                ", editora=" + editora +
                '}';
    }
}
public class Editora {
    private String nome;
    private String cidade;

    @Override
    public String toString() {
        return "Editora{" +
                "nome='" + nome + '\'' +
                ", cidade='" + cidade + '\'' +
                '}';
    }
}
import com.google.gson.Gson;

public class ConversaoJsonAninhado {

        public static void main(String[] args) {

            String jsonLivro = """
                    {
                      "titulo": "Clean Code",
                      "autor": "Robert C. Martin",
                      "editora": {
                        "nome": "Prentice Hall",
                        "cidade": "New York"
                      }
                    }
                    """;

            Gson gson = new Gson();

            Livro livro = gson.fromJson(jsonLivro, Livro.class);

            System.out.println("Objeto Livro: " + livro);
        }

}
1 resposta

Oi, Smalley! Como vai?

Agradeço por compartilhar.

Gostei da forma como você explorou diferentes cenários com o Gson, desde a conversão simples com record, passando pelo uso do setLenient() para lidar com JSON fora do padrão, até o exemplo com objeto aninhado no caso do Livro e Editora. Isso mostra que você entendeu bem como a biblioteca faz o mapeamento automático entre JSON e classes Java, inclusive em estruturas mais complexas.

Uma dica interessante para o futuro é utilizar o metodo toJson() para converter objetos Java de volta para JSON, facilitando testes e integrações.


Gson gson = new Gson();

Pessoa pessoa = new Pessoa("Maria", 30, "Recife");

String jsonGerado = gson.toJson(pessoa);

System.out.println(jsonGerado);

Nesse código, criamos um objeto Pessoa, usamos toJson() para transforma-lo em JSON e exibimos o resultado no console.

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