Olá, Renan!
Então, eu tinha entendido exatamente dessa forma case-insensitive, porém ao chegar no final do curso é lançado um desafio em que temos que pegar a propriedade "key" dos objetos dessa base:
https://guilhermeonrails.github.io/api-csharp-songs/songs.json
O que acontece é que criei uma propriedade escrita como Key, só que no caso com a inicial maiúscula, levando em consideração o ensinado (case-insensitive) e aí simplesmente não funciona dessa forma, tanto que no próprio vídeo/aula que mostra uma das possíveis soluções o instrutor também coloca o "JsonPropertyName("key")", aqui o link da aula, segue o código e o link do meu repositório:
using System.Text.Json.Serialization;
namespace ScreenSound.Modelos;
internal class Musica
{
private string[] tonalidades = { "C", "C#", "D", "Eb", "E", "F", "F#", "G", "Ab", "A", "Bb", "B" };
[JsonPropertyName("song")]
public string? Nome { get; set; }
[JsonPropertyName("artist")]
public string? Artista { get; set; }
[JsonPropertyName("duration_ms")]
public int Duracao { get; set; }
[JsonPropertyName("genre")]
public string? Genero { get; set; }
[JsonPropertyName("year")]
public string Ano { get; set; }
[JsonPropertyName("key")]
public int Key { get; set; }
public string Tonalidade
{
get
{
return tonalidades[Key];
}
}
public void ExibirDetalhesDaMusica()
{
Console.WriteLine($"Artista: {Artista}");
Console.WriteLine($"Música: {Nome}");
Console.WriteLine($"Duração em segundos: {Duracao / 1000}");
Console.WriteLine($"Gênero musical: {Genero}");
Console.WriteLine($"Tonalidade: {Tonalidade}");
}
}
Só por isso abri o tópico.