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
Sfruttare al massimo i topic space di Event Grid MQTT
Eseguire attività con Azure Container Jobs
Utilizzare un service principal per accedere a Azure Container Registry
Usare una container image come runner di GitHub Actions
Utilizzare gli snapshot con Azure File shares
Configurare policy CORS in Azure Container Apps
Specificare il versioning nel path degli URL in ASP.NET Web API
Utilizzare la libreria Benchmark.NET per misurare le performance
Reactive form tipizzati con modellazione del FormBuilder in Angular
Usare il versioning con i controller di ASP.NET Core Web API
Creare moduli CSS in React
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework