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 PersonCommenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ridurre il reflow ottimizzando il CSS
Configurare e gestire sidecar container in Azure App Service
Testare il failover sulle region in Azure Storage
Creare agenti facilmente con Azure AI Agent Service
Controllare la telemetria con .NET Aspire
Ciclo di vita risorse con .NET Aspire
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata
Utilizzare i command service nei test con .NET Aspire
Montare Azure Blob Storage su Linux con BlobFuse2
Eseguire query in contemporanea con EF
Proteggere l'endpoint dell'agente A2A delle Logic App
Centralizzare gli endpoint AI Foundry con Azure API Management
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Le DirectInk API nella Universal Windows Platform
- Sfruttare una CDN con i bundle di ASP.NET
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Inserire le news di Punto Informatico nel proprio sito


