Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web

di Stefano Mostarda, in .NET Framework,

Quando creiamo applicazioni non web (console, MAUI, WPF, servizi windows e così via) spesso abbiamo la necessità di invocare web api. Le web api serializzano e deserializzano i JSON di input e output sfruttando la libreria System.Text.Json con dei settings predefiniti che vengono creati in fase di creazione dell'host dell'applicazione. Quando deserializziamo dobbiamo serializzare e deserializzare i payload JSON da applicazioni non web, dobbiamo applicare gli stessi settings per non incorrere in errori dovuti.
Sebbene questi settings siano abbastanza semplici, dobbiamo documentarci per scoprire quali siano e in ogni applicazione dobbiamo crearci un'istanza e riusarla in ogni punto in cui si invoca una api. Con .NET 9 abbiamo a disposizione l'istanza singleton JsonSerializerOptions.Web che contiene esattamente gli stessi settings di ASP.NET e che possiamo direttamente usare nel nostro codice.

var payload = new Person { Id = 42, Nome = "Stefano Mostarda" };
var serialized = JsonSerializer.Serialize(payload, JsonSerializerOptions.Web);
Console.WriteLine(serialized);
// stampa { "Id": 42, "Nome": "Stefano Mostarda" }

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi