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
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Generare file PDF da Blazor WebAssembly con iText
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Inizializzare i container in Azure Container Apps
Gestire i null nelle reactive form tipizzate di Angular
Gestire liste di tipi semplici con Entity Framework Core
Eseguire una query su SQL Azure tramite un workflow di GitHub
Implementare l'infinite scroll con QuickGrid in Blazor Server
Utilizzare Tailwind CSS all'interno di React: installazione
Eseguire attività pianificate con Azure Container Jobs
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Visualizzare le change sul plan di Terraform tramite le GitHub Actions