首页  >  文章  >  web前端  >  如何在没有 jQuery 或序列化的情况下将 HTML5 FormData 转换为 JSON?

如何在没有 jQuery 或序列化的情况下将 HTML5 FormData 转换为 JSON?

DDD
DDD原创
2024-10-30 00:50:29728浏览

How to Convert HTML5 FormData to JSON Without jQuery or Serialization?

将 HTML5 FormData 转换为 JSON:分步指南

问题:转换 a 的条目FormData 对象转换为 JSON,无需 jQuery 或序列化整个对象。

答案:

要将 FormData 对象的条目转换为 JSON,请按照以下步骤操作:

  1. 创建一个空对象来存储键/值对。
  2. 使用循环或 forEach 等方法迭代 FormData 对象。
  3. 对于每个条目,设置键将空对象中的值改为条目的名称,并将值改为其值。
  4. 使用 JSON.stringify() 方法将对象转换为 JSON。

使用 forEach 的示例:

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

使用 ES6 箭头函数的示例:

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

支持多选列表:

如果您的表单包含多选列表或其他具有多个值的元素,您可以使用以下方法:

<code class="js">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);
});</code>

将 FormData 发送到服务器:

如果您打算将表单数据提交到服务器,您可以跳过 JSON 转换,直接使用 XMLHttpRequest 或 Fetch API 请求发送 FormData 对象。

注意:

JSON.stringify() 方法可能不支持所有类型的对象。如果您的对象包含不支持的类型,您可能需要实现自定义 toJSON() 方法来指定序列化逻辑。

以上是如何在没有 jQuery 或序列化的情况下将 HTML5 FormData 转换为 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn