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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare una User Delegation SAS in .NET per Azure Blob Storage
Utilizzare i variable font nel CSS
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Creare un agente A2Acon Azure Logic Apps
Gestione degli eventi nei Web component HTML
Importare repository da Bitbucket a GitHub Enterprise Cloud
Creare comandi nella dashboard .NET Aspire
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Abilitare il rolling update su Azure Functions flex consumption
Montare Azure Blob Storage su Linux con BlobFuse2
Configuratione e utilizzo .NET Aspire CLI
Controllare la velocità di spostamento su una pagina HTML
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Inserire le news di Punto Informatico nel proprio sito


