1
resposta

[Projeto] Desserializando Filmes

Classe Filme

 public class Filme
    {
        [JsonPropertyName("title")]
        public string? Nome { get; set; }
        [JsonPropertyName("year")]
        public string? Ano { get; set; }
        [JsonPropertyName("rank")]
        public string? Posicao { get; set; }

        public void DetalhesFilme()
        {
            Console.WriteLine($"Nome: {Nome}");
            Console.WriteLine($"Ano: {Ano}");
            Console.WriteLine($"Posição: {Posicao}");
        }
    }

Program

using (HttpClient client = new HttpClient())
{
    try
    {
        string resposta = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/TopMovies.json");
        var filmes = JsonSerializer.Deserialize<List<Filme>>(resposta);
        Console.WriteLine(filmes!.Count());
        filmes[0].DetalhesFilme();
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Houve um problema: {ex.Message}");
    }
}
1 resposta

Oi, Alycia! Como vai?

Gostei de como você estruturou a classe Filme usando JsonPropertyName para mapear as propriedades. Isso deixa a desserialização bem clara e facilita a leitura do código.

Uma dica interessante para o futuro é usar o método FirstOrDefault() do LINQ, que ajuda a acessar o primeiro item da lista sem precisar usar índices fixos. Veja este exemplo:


var primeiroFilme = filmes.FirstOrDefault();
if(primeiroFilme != null)
{
    primeiroFilme.DetalhesFilme();
}

Esse código garante que, se a lista estiver vazia, não haverá erro de índice.

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