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 GPT-4o realtime su Azure Open AI per conversazioni vocali
- Proteggere l'endpoint dell'agente A2A delle Logic App
- Creare una libreria CSS universale - Rotazione degli elementi
- Scrivere selettori CSS più semplici ed efficienti con :is()
- Applicare un filtro per recuperare alcune issue di GitHub
- Evitare memory leaks nelle closure JavaScript
- Eseguire script pre e post esecuzione di un workflow di GitHub
- Ottimizzare le pull con Artifact Cache di Azure Container Registry
- Conoscere il rendering Server o WebAssembly a runtime in Blazor
- Utilizzare Locust con Azure Load Testing
- Gestione ciclo di vita in .NET Aspire
- Managed deployment strategy in Azure DevOps
I più letti di oggi
- CSS Friendly Toolkit per ASP.NET 2.0 Beta 1, per migliorare il supporto agli standard web
- Nuova build di IE 7 beta 2 preview con la March 20 Refresh
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Occhio alle bufale: Microsoft non invia patch via e-mail!
- CSS Friendly ASP.NET 2.0 Control Adapters Beta 3


