将 HTML5 FormData 转换为 JSON:分步指南
问题:转换 a 的条目FormData 对象转换为 JSON,无需 jQuery 或序列化整个对象。
答案:
要将 FormData 对象的条目转换为 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中文网其他相关文章!