Olá Pedro! Como vai?
A estrutura que você está utilizando para serializar um objeto em JSON é funcional, mas como você mesmo mencionou, a legibilidade pode ser um ponto de atenção. Além disso, a criação repetida de objetos como JsonSerializerOptions e FileStream pode impactar a performance se o código for executado em um loop ou várias vezes.
Uma alternativa para melhorar a legibilidade e evitar a criação repetida desses objetos é separar a criação do FileStream e das opções de serialização em variáveis distintas antes de chamar o método Serialize. Isso também pode facilitar a reutilização do código. Aqui está um exemplo de como você poderia fazer isso:
// Definindo o caminho do arquivo
var caminhoArquivo = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "artistas.json");
// Criando as opções de serialização
var options = new JsonSerializerOptions { WriteIndented = true };
// Usando o bloco 'using' para garantir que o FileStream seja fechado corretamente
using (var arquivoJson = new FileStream(caminhoArquivo, FileMode.Create, FileAccess.Write))
{
// Serializando o objeto 'artistas' no arquivo JSON
JsonSerializer.Serialize(arquivoJson, artistas, options);
}
Dessa forma, o código fica mais organizado e você evita a recriação desnecessária dos objetos JsonSerializerOptions e FileStream. Além disso, ao utilizar o bloco using, você garante que o FileStream seja fechado corretamente após o uso, o que é uma boa prática para liberar recursos do sistema.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.