Maison >interface Web >js tutoriel >Comment convertir HTML5 FormData en JSON sans sérialisation ?

Comment convertir HTML5 FormData en JSON sans sérialisation ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 14:26:02315parcourir

How to Convert HTML5 FormData to JSON Without Serialization?

Conversion des données de formulaire HTML5 en JSON sans sérialisation

Lorsque vous travaillez avec des formulaires HTML5, il peut s'avérer nécessaire de convertir les données du formulaire en JSON. Une approche courante consiste à sérialiser l'objet FormData ; cependant, cela n’est peut-être pas souhaitable dans tous les cas. Voici comment convertir les entrées FormData en JSON sans sérialisation :

Étape 1 : Itérer sur l'objet FormData

Utilisez la méthode forEach() pour parcourir l'objet FormData. entrées. Chaque entrée contient une clé (nom du champ) et une valeur (valeur d'entrée).

Étape 2 : Créer un objet simple

Initialisez un objet vide pour stocker le converti Données JSON.

Étape 3 : Convertir les entrées en paires clé-valeur

Dans le rappel forEach(), attribuez les valeurs à l'objet en fonction de leurs clés. Par exemple :

<code class="javascript">formData.forEach(function(value, key) {
    object[key] = value;
});</code>

Étape 4 : Convertir l'objet en JSON

Enfin, utilisez la méthode JSON.stringify() pour convertir l'objet en chaîne JSON.

<code class="javascript">var json = JSON.stringify(object);</code>

Utilisation des fonctions fléchées ES6

Vous pouvez simplifier la boucle forEach() à l'aide des fonctions fléchées ES6 :

<code class="javascript">formData.forEach((value, key) => object[key] = value);</code>

Prise en charge de plusieurs valeurs

Si votre formulaire comprend des champs avec plusieurs valeurs, tels que des listes à sélection multiple, vous pouvez modifier le code ci-dessus pour les prendre en charge :

<code class="javascript">formData.forEach((value, key) => {
    if (!Array.isArray(object[key])) {
        object[key] = [object[key]];
    }
    object[key].push(value);
});</code>

Envoi direct de FormData

Si votre objectif est de soumettre les données du formulaire via un XMLHttpRequest, vous pouvez envisager d'envoyer l'objet FormData directement sans le convertir en JSON. Cette approche est également prise en charge par l'API Fetch.

Gestion des objets complexes

Notez que la méthode JSON.stringify() peut rencontrer des limitations lors du traitement d'objets complexes. Dans de tels cas, envisagez de définir une méthode toJSON() dans vos objets pour spécifier une logique de sérialisation personnalisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn