1
resposta

[Dúvida] Duvida sobre propriedade e atributo

Quando ele faz dentro do Serialize, nome = Nome, o "Nome" é da classe Musica, mas e o outro "nome" minusculo, de onde vem?

1 resposta

Oii, Guilherme.

Quando vemos essa sintaxe pela primeira vez, pode parecer que o código está buscando essa variável nome (minúscula) de algum lugar escondido, mas não é isso que acontece.

O nome em minúsculo está sendo criado naquele exato momento.

Vou te explicar como funciona essa estrutura chamada Objeto Anônimo (new { ... }):

Quando fazemos new { nome = Nome }, estamos dizendo ao C# o seguinte:

  1. Lado esquerdo (nome): Quero criar uma propriedade nova com este apelido. Será o rótulo (a chave) no JSON final.
  2. Lado direito (Nome): Quero que o valor dessa nova propriedade venha da variável Nome que já existe na sua classe MusicasPreferidas.

Pense nisso como uma "tradução" ou um "de/para" antes de gerar o arquivo:

  • Pegue o valor de Nome (da classe original).
  • Coloque dentro de uma caixa etiquetada como nome (do objeto novo).

Por que fazer isso?

Fazemos isso por convenção. No C#, costumamos usar PascalCase (iniciando com maiúscula, como Nome) para propriedades. Já no formato JSON (que é o arquivo de texto final), é padrão usar camelCase (iniciando com minúscula, como nome).

Ao fazer essa troca manual no objeto anônimo, garantimos que o arquivo final fique assim:

{
    "nome": "Emy",
    "musicas": [ ... ]
}

Se passássemos o objeto direto sem criar essa estrutura anônima, o JSON sairia com a chave maiúscula ("Nome": "Emy").

Então: o nome minúsculo nasceu ali dentro das chaves, apenas para organizar como os dados serão escritos no arquivo.

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