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
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Configurare policy CORS in Azure Container Apps
Ottimizzazione dei block template in Angular 17
Copiare automaticamente le secret tra più repository di GitHub
Effettuare delete massive con Entity Framework Core 7
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Gestire i null nelle reactive form tipizzate di Angular
Routing statico e PreRendering in una Blazor Web App
Utilizzare la session affinity con Azure Container Apps
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Effettuare il binding di date in Blazor
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)