JSON è diventato lo standard di fatto per la rappresentazione di strutture dati per la comunicazione tra sistemi eterogenei. Per tale ragione è stata inserita la classe DataContractJsonSerializer direttamente in WinRT, per semplificare la serializzazione e la deserializzazione degli oggetti.
Per la deserializzazione, ad esempio, il suo utilizzo è estremamente semplice:
private void MyMethod() { var json = "{\"id\":\"1234\",\"name\":\"xxx\", \"description\":\"descriptionsssss\"}"; var obj = new MyObject(); using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { var ser = new DataContractJsonSerializer(obj.GetType()); obj = ser.ReadObject(ms) as MyObject; } } [DataContract] public class MyObject { [DataMember(Name = "id", IsRequired = true)] public int Id { get; set; } [DataMember(Name = "name", IsRequired = true)] public string Name { get; set; } [DataMember(Name = "description", IsRequired = true)] public string Description { get; set; } }
Con la stringa nel formato JSON, il metodo ReadObject di DataContractJsonSerializer può costruire l'oggetto elaborando il MemoryStream contenente i bytes della stringa stessa.
Le proprietà della classe che rappresenta l'oggetto che andiamo a deserializzare può essere decorata con gli attributi DataMember nei quali possiamo definire la corrispondenza tra la proprietà stessa ed il nodo JSON che ci si aspetta.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Code scanning e advanced security con Azure DevOps
Utilizzare database e servizi con gli add-on di Container App
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Recuperare l'ultima versione di una release di GitHub
Cambiare la chiave di partizionamento di Azure Cosmos DB
Eseguire i worklow di GitHub su runner potenziati
Criptare la comunicazione con mTLS in Azure Container Apps
Disabilitare automaticamente un workflow di GitHub (parte 2)
Migliorare l'organizzazione delle risorse con Azure Policy
Ottimizzazione dei block template in Angular 17
Effettuare il refresh dei dati di una QuickGrid di Blazor
Hosting di componenti WebAssembly in un'applicazione Blazor static
I più letti di oggi
- ora è la volta di #azure. http://aspitalia.com/build-win8 #BldWin
- Implementare il pattern Dispose del .NET Framework
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare la cancellazione logica in #azure Container Registry https://aspit.co/ccy di @CristianCivera
- Centrare elementi in HTML tramite CSS
- Annunciato #PowerBI Embedded e disponibile in preview a partire da oggi! https://aspit.co/build2016 #build2016
- con il code inspector si potrà vedere il codice server associato all'HTML prodotto, ... http://aspitalia.com/build-win8 #BldWin
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!