Due delle operazioni più comuni di un'applicazione sono quelle di serializzare un oggetto in una stringa JSON e di eseguire l'operazione opposta. La libreria JSON.NET svolge un ottimo compito in questo senso, ma Microsoft ha deciso di rilasciare una propria libreria all'interno di .NET Core: System.Text.Json. Sebbene questa nuova libreria sia ancora giovane e meno potente rispetto a JSON.NET, è facile prevedere che Microsoft continuerà ad arricchirla di funzionalità e a migliorarne le performance. Per questo motivo, in questo script vedremo come creare due extension method per eseguire i task di serializzazione e deserializzazione usando System.Text.Json.
La prima cosa da fare è importare da NuGet la libreria System.Text.Json. Una volta effettuata quest'operazione possiamo usare l'oggetto JsonSerializer e i suoi metodi statici Serialize e Deserialize<T>. Come si intuisce dai nomi, il primo serializza un oggetto in una stringa JSON, mentre il secondo deserializza una stringa nell'oggetto specificato dal parametro T. Possiamo usare questi metodi all'interno dei seguenti extension method.
public static string ToJson(this object input) { if (input == null) return String.Empty; return JsonSerializer.Serialize(input); } public static T FromJson<T>(this string input) { if (input == null) return default; return JsonSerializer.Deserialize<T>(input); }
Grazie a questi extension method, il codice necessario a serializzare e deserializzare diventa estremamente semplice.
var person = new Person { Id = 1, FirstName = "Stefano", LastName = "Mostarda" }; var json = person.ToJson(); //serializza l'oggetto in json var deserialized = json.Deserialize<Person>(); //deserializza la stringa in un oggetto Person
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creazione di componenti personalizzati in React.js con Tailwind CSS
Creare moduli CSS in React
Migrare una service connection a workload identity federation in Azure DevOps
Eseguire attività pianificate con Azure Container Jobs
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Eseguire una GroupBy per entity in Entity Framework
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
I più letti di oggi
- Creare un messaggio di posta in diversi formati con ASP.NET 2.0
- Caricare un DTO esposto da un servizio tramite una query LINQ to Entities in Entity Framework
- Utilizzare il metodo reduce in #javascript https://aspit.co/ccc di @morwalpiz
- Elencare gli utenti di un dominio NT con ADSI
- Utilizzare SQL e #linq per eseguire una query con #entityframework Core https://aspit.co/bfv di @sm15455 #efcore1
- Disponibile il codice sorgente di ASP.NET MVC
- Concludiamo in bellezza con Giancarlo Sudano di Microsoft: q# for quantum programming Siamo in live streaming da: https://aspit.co/netconf-22 #aspilive #netconfit
- Caricare i dati di configurazione allo startup di un'applicazione Angular
- rilasciati nuovi template per la #aspnet web pages. funzionano anche con #webmatrix: http://u.aspitalia.com/lu
- Creare automaticamente una pipeline YAML da una sua definizione in Azure DevOps