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
Change tracking e composition in Entity Framework
Utilizzare Azure Cosmos DB con i vettori
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Gestione degli stili CSS con le regole @layer
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Miglioramenti agli screen reader e al contrasto in Angular
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Combinare Container Queries e Media Queries
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8