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
Utilizzare l nesting nativo dei CSS
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Configurare lo startup di applicazioni server e client con .NET Aspire
Utilizzare Azure AI Studio per testare i modelli AI
Change tracking e composition in Entity Framework
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Recuperare l'ultima versione di una release di GitHub
Generare un hash con SHA-3 in .NET
Disabilitare automaticamente un workflow di GitHub (parte 2)
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core