Maison  >  Article  >  interface Web  >  Comment convertir HTML5 FormData en JSON pour la communication client-serveur ?

Comment convertir HTML5 FormData en JSON pour la communication client-serveur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 18:33:30579parcourir

How to Convert HTML5 FormData to JSON for Client-Server Communication?

Conversion de HTML5 FormData en JSON

La conversion d'objets HTML5 FormData en JSON permet la sérialisation des données de formulaire dans un format lisible par machine. Ceci est utile pour transmettre des données entre le client et le serveur.

Méthode utilisant un objet personnalisé et JSON.stringify

Pour convertir les entrées FormData en JSON sans jQuery ni sérialiser le objet entier :

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

Mise à jour 1 : Fonctions fléchées ES6

Utilisation des fonctions fléchées ES6 :

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

Mise à jour 2 : Prise en charge des éléments à valeurs multiples

Pour les listes à sélection multiple ou d'autres éléments de formulaire avec plusieurs valeurs :

<code class="javascript">var object = {};
formData.forEach((value, key) => {
    if(!Reflect.has(object, key)){
        object[key] = value;
        return;
    }
    if(!Array.isArray(object[key])){
        object[key] = [object[key]];    
    }
    object[key].push(value);
});
var json = JSON.stringify(object);</code>

Mise à jour 3 : Transmission directe de FormData

Pour envoyer FormData à un serveur via XMLHttpRequest :

<code class="javascript">var request = new XMLHttpRequest();
request.open('POST', 'http://example.com/submitform.php');
request.send(formData);</code>

Ou en utilisant l'API Fetch :

<code class="javascript">fetch('http://example.com/submitform.php', {
  method: 'POST',
  body: formData
}).then((response) => { 
  // do something with response here... 
});</code>

Mise à jour 4 : méthode toJSON personnalisée pour les complexes Objets

Pour les objets personnalisés, définissez une méthode toJSON pour sérialiser leur contenu. Reportez-vous à la documentation MDN pour plus d'informations sur les limitations de JSON.stringify.

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