Nello script #84 abbiamo visto come sia semplice consumare servizi REST JSON grazie alle classi presenti nel namespace Windows.Data.Json.
In particolare abbiamo visto come JsonObject esponga dei metodi specifici per recuperare i valori di un oggetto in relazione al tipo, come ad esempio GetNamedString per le stringhe, GetNamedNumber per i double, GetNamedBoolean per i boolean e altri.
Tra questi metodi è assente quello per i DateTime: per questo tipo di dato dobbiamo procedere manualmente partendo dal valore in formato stringa.
Un DateTime serializzato in JSON assume un valore in formato stringa con la seguente struttura: /Date({milliseconds})/, dove {milliseconds} rappresentano i millisecondi dal 1 gennaio 1970, in UTC.
Per convertire tale valore in DateTime possiamo procedere come di seguito.
var client = new HttpClient(); var data = await client.GetStringAsync("{uri}"); var jsonObj = Windows.Data.Json.JsonObject.Parse(data); var lastupdateValue = jsonObj.GetNamedString("lastupdate"); var match = Regex.Match(lastupdateValue, @"/Date\((?<milliseconds>-?\d*)\)/"); var milliseconds = Convert.ToInt64(match.Groups["milliseconds"].Value); var lastupdateDate = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Estrarre dati randomici da una lista di oggetti in C#
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Creare una libreria CSS universale: Cards
Gestire il colore CSS con HWB
.NET Aspire per applicazioni distribuite
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Usare il colore CSS per migliorare lo stile della pagina
Simulare Azure Cosmos DB in locale con Docker
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Rendere le variabili read-only in una pipeline di Azure DevOps
Gestione dell'annidamento delle regole dei layer in CSS
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework