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
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Code scanning e advanced security con Azure DevOps
Usare lo spread operator con i collection initializer in C#
Routing statico e PreRendering in una Blazor Web App
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Disabilitare automaticamente un workflow di GitHub (parte 2)
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Utilizzare un service principal per accedere a Azure Container Registry
Gestire domini wildcard in Azure Container Apps
Ordine e importanza per @layer in CSS
Assegnare un valore di default a un parametro di una lambda in C#
Criptare la comunicazione con mTLS in Azure Container Apps
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online