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
Paginare i risultati con QuickGrid in Blazor
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Testare l'invio dei messaggi con Event Hubs Data Explorer
Creare una libreria CSS universale: Cards
Simulare Azure Cosmos DB in locale con Docker
Creare una libreria CSS universale - Rotazione degli elementi
Recuperare l'ultima versione di una release di GitHub
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Potenziare la ricerca su Cosmos DB con Full Text Search
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Utilizzare WhenEach per processare i risultati di una lista di task
Change tracking e composition in Entity Framework
I più letti di oggi
- Validazione automatica dei parametri in Web API con ASP.NET Core 2.1
- Recuperare i file utilizzati di recente in un'Universal App
- Applicare un'animazione al contenuto di un ContentControl nella Universal Windows Platform
- AI&ML Conference 2019 - Milano
- .NET Serverless Day - Online
- Rilasciata la versione Beta 2 di Silverlight 2.0