Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: hora da prática - Atividade 01 - Atividade 02

Atividade 10.1

using System.Text.Json;

Console.Clear();

Console.Write("Digite o nome da pessoa: ");
string nomePessoa = Console.ReadLine()!;

Console.Write("Digite a idade da pessoa: ");
int idade; int.TryParse(Console.ReadLine()!, out idade);

Console.Write("Digite o email da pessoa: ");
string emailPessoa = Console.ReadLine()!;

string json = JsonSerializer.Serialize(new {
    nome = nomePessoa,
    email = emailPessoa,
    idade = idade
});

string nomeArquivo = $"infos-{nomePessoa.ToLower()}";
File.WriteAllText(nomeArquivo, json);
Console.WriteLine($"Arquivo .json salvo com sucesso em {Path.GetFullPath(nomeArquivo)}");

Atividade 10.2

Usuario.cs

using System.Text.Json.Serialization;

class Usuario {

    [JsonPropertyName("nome")]
    public string? Nome {get;set;}

    [JsonPropertyName("idade")]
    public int Idade {get;set;}

    [JsonPropertyName("email")]
    public string? Email {get;set;}

    public void ExibirInformacoes() {
        Console.WriteLine();
        Console.WriteLine($"Nome: {Nome}");
        Console.WriteLine($"Email: {Email}");
        Console.WriteLine($"Idade: {Idade}");
        Console.WriteLine();
    }
}

Program.cs

using System.Text.Json;

Console.ReadLine();
Console.Clear();

Console.Write("Digite o seu nome: ");
string nome = Console.ReadLine()!;

string json = $"infos-{nome}";
string jsonText = File.ReadAllText(json);

var info = JsonSerializer.Deserialize<Usuario>(jsonText);
info!.ExibirInformacoes();
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Curti bastante como você estruturou a serialização com JsonSerializer e depois evoluiu para uma classe Usuario com [JsonPropertyName]. Isso mostra um bom entendimento tanto do fluxo de escrita quanto de leitura de arquivos, além de organização do código.

Você pode validar se o arquivo existe antes de tentar ler, evitando erros em tempo de execução:


string nomeArquivo = "infos-" + nome.ToLower();

if (File.Exists(nomeArquivo)) {
    string jsonText = File.ReadAllText(nomeArquivo);
    Usuario info = JsonSerializer.Deserialize<Usuario>(jsonText);
    info.ExibirInformacoes();
} else {
    Console.WriteLine("arquivo nao encontrado");
}

Esse código verifica se o arquivo existe antes de ler, evitando falhas no programa.

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