Spesso ci torna utile serializzare una form HTML in JSON, invece di utilizzare la normale notazione di default in stile query string, poiché, magari, i dati inseriti al suo interno dovranno essere inviati ad un endpoint che si aspetta come corpo della richiesta dei dati in formato JSON.
Possiamo risolvere questa necessità utilizzando lo script riportato di seguito:
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name]) {
if (!o[this.name].push)
o[this.name] = o[this.name];
} else {
o[this.name] = this.value || '';
}
});
return o;
};
A livello funzionale, non facciamo altro che aggiungere tramite l'alias fn un nuovo prototipo di funzione serializeObject, che, preso in input l'istanza dell'oggetto, itera su ogni elemento dell'array generato dalla serializzazione dell'oggetto aggiungendolo, qualora non sia già presente. Una volta aggiunti tutti gli elementi, utilizziamo il metodo stringify per rappresentare l'array con la notazione chiave-valore tipica di JSON. Lo script dovrà essere richiamato nel seguente modo:
var json = JSON.stringify($('#myForm').serializeObject());
Tale riga di codice produrrà l'output riportato nella figura sottostante, che come possiamo aspettarci potrà essere utilizzato facilmente in operazioni di deserializzazione server side.

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Ottimizzazione dei block template in Angular 17
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Utilizzare QuickGrid di Blazor con Entity Framework
Creare una libreria CSS universale: Clip-path
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
.NET Conference Italia 2024
Combinare Container Queries e Media Queries
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Ordinare randomicamente una lista in C#
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Repaint, Reflow e Compositing: Come Funziona il Rendering nel Browser
- 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!
- 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!