1
resposta

Desafio API - GOT

Fiz essa atividade e consegui chegar sozinho até essa parte, mas o restante não consigo fazer subir os titulos nem os apelidos poderiam me ajudar? Segue meu codigo using CHallenge2024.Modelos;

using System.Linq.Expressions; using System.Text.Json; using System.Text.Json.Serialization;

using (HttpClient client = new HttpClient())
{

    try
    {
        string resposta = await client.GetStringAsync("https://www.anapioficeandfire.com/api/characters/16");
        // Console.WriteLine(resposta);
        var characters = JsonSerializer.Deserialize<Character>(resposta)!;
        //Console.WriteLine(characters.Count);
       
        Console.WriteLine($"Nome do Personagem:{characters.Nome}");
        Console.WriteLine($"Genero:{characters.Genero}");
      Console.WriteLine($"Cultura:{characters.Cultura}");
    Console.WriteLine($"Nascimento:{characters.Nascimento}");
    Console.WriteLine($"Morreu:{characters.Morreu}");
    //Console.WriteLine($"Titulos:{characters.Titulo}");
    // Console.WriteLine($"Apelido:{characters.Apelido}");

   

}

catch (Exception ex)
    {
        Console.WriteLine($"Temos uma problemas Houston:{ex.Message}");

    }
}
1 resposta

Olá, Job.

Tudo bem?

Parece que você está no caminho certo com a deserialização da API de Game of Thrones. Para exibir os títulos e apelidos dos personagens, você precisa garantir que a sua classe Character está corretamente configurada para deserializar esses campos, e depois iterar sobre eles para exibi-los.

Vamos ajustar a sua classe Character e o código para exibir os títulos e apelidos. Aqui está um exemplo de como você pode fazer isso:

  1. Defina a classe Character corretamente:
namespace CHallenge2024.Modelos
{
    public class Character
    {
        [JsonPropertyName("name")]
        public string Nome { get; set; }

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

        [JsonPropertyName("culture")]
        public string Cultura { get; set; }

        [JsonPropertyName("born")]
        public string Nascimento { get; set; }

        [JsonPropertyName("died")]
        public string Morreu { get; set; }

        [JsonPropertyName("titles")]
        public List<string> Titulos { get; set; }

        [JsonPropertyName("aliases")]
        public List<string> Apelidos { get; set; }
    }
}
  1. Ajuste o código para exibir os títulos e apelidos:
using CHallenge2024.Modelos;
using System.Net.Http;
using System.Text.Json;

using (HttpClient client = new HttpClient())
{
    try
    {
        string resposta = await client.GetStringAsync("https://www.anapioficeandfire.com/api/characters/16");
        var character = JsonSerializer.Deserialize<Character>(resposta)!;

        Console.WriteLine($"Nome do Personagem: {character.Nome}");
        Console.WriteLine($"Genero: {character.Genero}");
        Console.WriteLine($"Cultura: {character.Cultura}");
        Console.WriteLine($"Nascimento: {character.Nascimento}");
        Console.WriteLine($"Morreu: {character.Morreu}");

        Console.WriteLine("Titulos:");
        foreach (var titulo in character.Titulos)
        {
            Console.WriteLine($"- {titulo}");
        }

        Console.WriteLine("Apelidos:");
        foreach (var apelido in character.Apelidos)
        {
            Console.WriteLine($"- {apelido}");
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Temos um problema, Houston: {ex.Message}");
    }
}

Com essas alterações, seu código deve ser capaz de exibir os títulos e apelidos do personagem corretamente. A classe Character agora inclui listas para Titulos e Apelidos, e o código itera sobre essas listas para exibir cada item.

Veja se faz sentido.

Espero ter ajudado e bons estudos!