1
resposta

[Projeto] Classes para serializar json. Exercicio

Filme:

using System.Text.Json.Serialization;

namespace ScreenSound.Models
{
    public class Filme
    {
        [JsonPropertyName("id")]
        public string Id { get; set; }

        [JsonPropertyName("rank")]
        public string Posicao { get; set; }

        [JsonPropertyName("title")]
        public string Titulo { get; set; }

        [JsonPropertyName("fullTitle")]
        public string TituloCompleto { get; set; }

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

        [JsonPropertyName("image")]
        public string UrlImagem { get; set; }

        [JsonPropertyName("crew")]
        public string Equipe { get; set; }

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

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

País:

public 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; }
}

classe carro:

using System.Text.Json.Serialization;

namespace ScreenSound.Models
{
    public class Carro
    {
        [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; }
    }
}

Classe Livro:

using System.Text.Json.Serialization;

namespace ScreenSound.Models
{
    public class Livro
    {
        [JsonPropertyName("titulo")]
        public string Titulo { get; set; }

        [JsonPropertyName("autor")]
        public string Autor { get; set; }

        [JsonPropertyName("ano_publicacao")]
        public int AnoPublicacao { get; set; }

        [JsonPropertyName("genero")]
        public string Genero { get; set; }

        [JsonPropertyName("paginas")]
        public int Paginas { get; set; }

        [JsonPropertyName("editora")]
        public string Editora { get; set; }
    }
}
1 resposta

Oi, Lucas! Como vai?

Seu código está muito bem estruturado e organizado. A utilização dos atributos **[JsonPropertyName]** facilita bastante a serialização e desserialização dos objetos, mantendo a correspondência com os nomes do JSON original. Esse cuidado deixa o código mais limpo e pronto para consumir APIs de forma eficaz.

Uma dica interessante para o futuro é conhecer o método **JsonSerializer.Serialize**, que permite transformar um objeto C# em JSON. Veja este exemplo:


using System.Text.Json;

var livro = new Livro { Titulo = "Exemplo", Autor = "Autor X", AnoPublicacao = 2020 };
string json = JsonSerializer.Serialize(livro);
Console.WriteLine(json);

Esse código usa JsonSerializer.Serialize para gerar uma string JSON a partir de um objeto.

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