Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: Hora da prática - Atividade 2

Resolução:
Pais.cs

using System.Text.Json.Serialization;

namespace DesafiosCSharp03._02Desafio.Modelos
{
    internal class Pais
    {
        [JsonPropertyName("nome")]
        public string? Nome { get; set; }
        [JsonPropertyName("capital")]
        public string? Capital { get; set; }
        [JsonPropertyName("populacao")]
        public string? Populacao { get; set; }
        [JsonPropertyName("continente")]
        public string? Continente { get; set; }
        [JsonPropertyName("idioma")]
        public string? Idioma { get; set; }
        public string FichaPaises => $"Pais: {Nome} - Capital: {Capital} - Populacao: {Populacao}";

    }
}

Program.cs

Console.Clear();

using (HttpClient client = new HttpClient())
{
    string resposta = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/TopMovies.json");
    try
    {
        var paises = JsonSerializer.Deserialize<List<Pais>>(resposta)!;
        foreach (var pais in paises)
        {
            Console.WriteLine(pais.FichaPaises);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Ocorreu um erro ao obter os dados: {ex.Message}");
    }
}
1 resposta

Olá, Christopher! Como vai?

Gostei da forma como você estruturou a classe Pais utilizando os atributos JsonPropertyName, pois isso facilita bastante o processo de desserialização dos dados. Também ficou interessante a criação da propriedade FichaPaises, que deixa a exibição das informações mais organizada e torna o código mais legível.

Uma dica interessante para o futuro é utilizar o método OrderBy() do LINQ para exibir os dados já ordenados. Veja este exemplo:


var paisesOrdenados = paises.OrderBy(p => p.Nome);

foreach (var pais in paisesOrdenados)
{
    Console.WriteLine(p.FichaPaises);
}

Esse código organiza a lista pelo nome dos países antes da exibição, deixando a consulta dos dados ainda mais prática.

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