JavaScript utilizza il metodo statico parse della classe JSON per parsare una stringa JSON e trasformarla in un oggetto. Questo metodo analizza anche il tipo del campo (numero, stringa booleano) creando poi una proprietà dello stesso tipo quando crea l'oggetto. Questo discorso non vale però per le date in quanto queste vengono serializzate come stringhe e quindi il parser le tratta come tali quando va a creare l'oggetto. Tuttavia possiamo personalizzare il comportmento di JSON.parse passando in input non solo la stringa JSON, ma anche un callback che il metodo invoca per ogni proprietà. Il callback accetta in input la proprietà e deve restituire in output il controvalore che verrà aggiunto nell'oggetto. Sfruttando questo callback possiamo analizzare il valore dei campi di tipo string e se hanno il formato della data possiamo trasformarli in un oggetto Date di JavaScript e restituirlo.
JSON.parse(json, callback); callback(key, value) { // se non è una stringa torna il valore originale if (typeof value !== 'string') { return value; } // se ha il formato di una data ma è al valore minimo consentito torna null if (value === '0001-01-01T00:00:00') { return null; } // se non ha il formato di una data torna il valore originale const match = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); if (!match) { return value; } // se ha il formato di una data crea l'oggetto date e lo torna return new Date(value); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Hybrid Cache in .NET 9
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Gestione file Javascript in Blazor con .NET 9
Utilizzare l nesting nativo dei CSS
Eliminare una project wiki di Azure DevOps
Loggare le query più lente con Entity Framework
Eseguire script pre e post esecuzione di un workflow di GitHub
Utilizzare Container Queries nominali
Utilizzare Intersect e Except per filtrare set di dati in TSql
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Gestione ciclo di vita in .NET Aspire
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- .NET Conference Italia 2025 - Milano
- Gestione ciclo di vita in .NET Aspire
- The Agentic Day - Milano
- Gestione CSS in Blazor con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Gestione file Javascript in Blazor con .NET 9
- Inviare un'e-mail con ASP.NET