Classe País
using System.ComponentModel;
using System.Text.Json.Serialization;
namespace Paises.Modelos;
internal class Pais
{
[JsonPropertyName("nome")]
public string Nome { get; set; }
[JsonPropertyName("capital")]
public string Capital { get; set; }
[JsonPropertyName("idioma")]
public string Idioma { get; set; }
[JsonPropertyName("populacao")]
public int Populacao { get; set; }
public void ExibirDetalhesDoPais()
{
Console.WriteLine($"País: {Nome}");
Console.WriteLine($"Capital: {Capital}");
Console.WriteLine($"Idioma: {Idioma}");
Console.WriteLine($"População: {Populacao.ToString("N0")}"); // A propriedade .ToString especifica a formatação que quero exibir o dado da população. No caso, vai exibir separadores (.) a cada 3 dígitos e o termo "N0" indique que não vai exibir casas decimais. Para exibir quantidade específica de casas decimais, basta usa "NX", onde X é a quantidade de casas decimais.
}
}
Program Países
using System.Text.Json;
using System.Text.Json.Serialization;
using Paises.Modelos;
string endPoint = "https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Paises.json";
using (HttpClient client = new HttpClient())
{
try
{
string resposta = await client.GetStringAsync(endPoint);
var paises = JsonSerializer.Deserialize<List<Pais>>(resposta);
foreach (var pais in paises)
{
pais.ExibirDetalhesDoPais();
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"Houe um erro: {ex.Message}.");
}
}
Classe Carro
using System.Text.Json.Serialization;
namespace Carros.Modelos;
internal 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; }
public void ExibirDetalhesDoCarro()
{
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}");
}
}
Program Carros
using Carros.Modelos;
using System.Text.Json;
string endPoint = "https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Carros.json";
using (HttpClient client = new HttpClient())
{
try
{
string resposta = await client.GetStringAsync(endPoint);
var carros = JsonSerializer.Deserialize<List<Carro>>(resposta);
Console.WriteLine($"Existem {carros.Count} carros na lista:\n");
foreach (var carro in carros)
{
carro.ExibirDetalhesDoCarro();
Console.WriteLine("\n-----------\n");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Classe Livro:
using System.Text.Json.Serialization;
namespace Livros.Modelos;
internal 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; }
public void ExibirDetalhesDoLivro()
{
Console.WriteLine($"Título: {Titulo}");
Console.WriteLine($"Autor: {Autor}");
Console.WriteLine($"Ano de publicação: {AnoPublicacao}");
Console.WriteLine($"Gênero: {Genero}");
Console.WriteLine($"Quantidade de páginas: {Paginas}");
Console.WriteLine($"Editora: {Editora}");
}
}
Program Livros:
using Livros.Modelos;
using System.Text.Json;
string endPoint = "https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Livros.json";
using (HttpClient client = new HttpClient())
{
try
{
string resposta = await client.GetStringAsync(endPoint);
var livros = JsonSerializer.Deserialize<List<Livro>>(resposta);
foreach (var livro in livros)
{
livro.ExibirDetalhesDoLivro();
Console.WriteLine("\n************\n");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}