1
resposta

Desafio Spring parte 2

ex 4:

public class Tarefa {
    private String descricao;
    private boolean concluida;
    private String pessoaresponsavel;

    public Tarefa () {}
    public Tarefa(String descricao, boolean concluida, String pessoaresponsavel) {
        this.descricao = descricao;
        this.concluida = concluida;
        this.pessoaresponsavel = pessoaresponsavel;
    }

    public String getDescricao() {
        return descricao;
    }

    public boolean isConcluida() {
        return concluida;
    }

    public String getPessoaresponsavel() {
        return pessoaresponsavel;
    }

    @Override
    public String toString() {
        return "Tarefa{" +
                "descricao='" + descricao + '\'' +
                ", concluida=" + concluida +
                ", pessoaresponsavel='" + pessoaresponsavel + '\'' +
                '}';
    }
}
@SpringBootApplication
public class TarefaApplication implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(TarefaApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        Tarefa tarefa = new Tarefa("Estudar java", false, "Renata");
        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(tarefa);
        System.out.println("Serializando: " +json);

        mapper.writeValue(new File("tarefa.json"), tarefa);

        Tarefa tarefaLida = mapper.readValue(new File("tarefa.json"), Tarefa.class);
        System.out.println("Tarefa Lida no Json: " +tarefaLida);
    }
}
1 resposta

Oi, Renata! Como vai?

Ficou muito legal a forma como você utilizou a classe ObjectMapper para serializar e desserializar o objeto Tarefa. O mapeamento está bem estruturado e o toString() ajuda bastante na leitura do retorno no terminal.

Uma dica interessante para o futuro é usar a anotação @JsonProperty para personalizar os nomes das propriedades no JSON, caso queira diferenciar dos nomes das variáveis da classe.
Veja este exemplo:


public class Tarefa {
    @JsonProperty("descricao_da_tarefa")
    private String descricao;
}

Essa anotação permite customizar como o campo vai aparecer no arquivo json, mesmo que o nome da variável na classe continue igual.

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