1
resposta

[Projeto] Desafio: hora da prática

Modelar e desserializar a classe Filme, que pode ser encontrada no endpoint disponibilizado

Filme.cs

using System.Text.Json.Serialization;
namespace desafio_Filme.Modelos;

internal class Filme
{
    [JsonPropertyName("title")]
    public string? Nome { get; set; }

    [JsonPropertyName("year")]
    public string? Ano { get; set; }

    [JsonPropertyName("imDbRating")]
    public string? Avaliacao { get; set; }

    [JsonPropertyName("imDbRatingCount")]
    public string? Numero_Avaliacoes { get; set; }

    public void Exibir()
    {
        Console.WriteLine($"Nome: {Nome}");
        Console.WriteLine($"Ano: {Ano}");
        Console.WriteLine($"Avaliação IMDB: {Avaliacao}");
        Console.WriteLine($"Número de avaliações no IMDB: {Numero_Avaliacoes}");
    }
}

Program.cs

using System.Runtime.ExceptionServices;
using System.Text.Json;
using desafio_Filme.Modelos;

using (HttpClient client = new HttpClient())
{
    try
    {
        string response = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/TopMovies.json");
        var filmes = JsonSerializer.Deserialize<List<Filme>>(response)!;
        foreach(var filme in filmes)
        {
            filme.Exibir();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
}

Modelar e desserializar a classe Pais, que pode ser encontrada no endpoint disponibilizado

Pais.cs

using System.Text.Json.Serialization;
namespace desafio_pais.Modelos;

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

    [JsonPropertyName("capital")]
    public string? Capital { get; set; }

    [JsonPropertyName("populacao")]
    public int? Populacao { get; set; }

    [JsonPropertyName("continente")]
    public string? Continente { get; set; }

    [JsonPropertyName("idioma")]
    public string? Idioma { get; set; }

    public void Exibir()
    {
        Console.WriteLine($"Nome: {Nome}");
        Console.WriteLine($"Capital: {Capital}");
        Console.WriteLine($"População: {Populacao}");
        Console.WriteLine($"Continente: {Continente}");
        Console.WriteLine($"Idioma: {Idioma}");
        Console.WriteLine("________________________________");

    }
}

Program.cs

using System.Runtime.ExceptionServices;
using System.Text.Json;
using desafio_pais.Modelos;
using System.Collections.Generic;


using (HttpClient client = new HttpClient())
{
    try
    {
        string response = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Paises.json");
        var paises = JsonSerializer.Deserialize<List<Pais>>(response)!;
        foreach (var pais in paises)
        {
            pais.Exibir();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
}

Modelar e desserializar a classe Carro, que pode ser encontrada no endpoint disponibilizado

Carros.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace desafio_carros.Modelos
{
    internal class Carros
    {
        [JsonPropertyName("marca")]
        public string? Marca { get; set; }

        [JsonPropertyName("modelo")]
        public string? Modelo { get; set; }

        [JsonPropertyName("ano")]
        public int? Ano { get; set; }

        [JsonPropertyName("tipo")]
        public string? Tipo { get; set; }

        [JsonPropertyName("motor")]
        public string? Motor { get; set; }

        [JsonPropertyName("transmissao")]
        public string? Transmissao { get; set; }

        public void ExibirCarro()
        {
            Console.WriteLine($"Marca: {Marca}");
            Console.WriteLine($"Modelo: {Modelo}");
            Console.WriteLine($"Ano: {Ano}");
            Console.WriteLine($"Tipo: {Tipo}");
            Console.WriteLine($"Motor: {Motor}");
            Console.WriteLine($"Transmissão: {Transmissao}");
            Console.WriteLine($"_______________");

        }
    }
}

Program.cs

using System.Text.Json;
using desafio_carros.Modelos;

using (HttpClient client = new HttpClient())
{
    try
    {
        string response = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Carros.json");
        var carros = JsonSerializer.Deserialize<List<Carros>>(response);
        foreach(var carro in carros)
        {
            carro.ExibirCarro();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
}
1 resposta

Olá, Giovanna.

Tudo bem?

Você fez um ótimo trabalho ao modelar e desserializar essas classes em C#. Sua implementação está bem alinhada com o desafio proposto, especialmente ao lidar com diferentes endpoints e exibir as informações dos objetos. É importante ter essa prática para reforçar o entendimento sobre consumo de APIs e manipulação de dados em C#.

Continue assim! Continue praticando. Parabéns. Qualquer dúvida, o fórum está à disposição.

Até mais e bons estudos!