讲师中心 微信公众号
AI工具推荐 视频效率加速

jQuery 表单提交后获取结构化 JSON 对象数据的完整方案

胖墨姑娘_8488

胖墨姑娘_8488

发布时间:2026-02-19 10:50:09

|

300人浏览过

|

来源于php中文网

原创

jQuery 表单提交后获取结构化 JSON 对象数据的完整方案

本文介绍如何在 jquery 表单提交时,将多类型表单控件(文本框、单选、复选、下拉、文本域)自动聚合成符合语义的 javascript 对象——单值保留字符串,多值(如复选框、多选下拉)自动转为数组,无需手动遍历拼接。

本文介绍如何在 jquery 表单提交时,将多类型表单控件(文本框、单选、复选、下拉、文本域)自动聚合成符合语义的 javascript 对象——单值保留字符串,多值(如复选框、多选下拉)自动转为数组,无需手动遍历拼接。

在 Web 表单开发中,$('form').serializeArray() 是常用方法,但它返回的是扁平化的键值对数组(如 [{name: "hobby", value: "Sport"}, {name: "hobby", value: "Music"}]),无法直接映射为结构清晰的 JSON 对象。而实际业务中,我们更期望得到类似以下格式的数据:

{
  "name": "Andi",
  "password": "pass",
  "role": "teacher",
  "hobby": ["Sport"],
  "description": "I like programming",
  "city": "Jakarta"
}

✅ 理想目标:同名字段自动聚合(如多个 hobby → 数组)、单值字段保持原生类型(字符串)、语义清晰、开箱即用。

推荐方案:使用原生 FormData + 键值智能归并

jQuery 本身不提供“序列化为嵌套对象”的内置方法,但可无缝结合浏览器原生 FormData API 实现高效、健壮的转换逻辑。核心思路是:

Feishu calendar sync, local ics to json data for AI agent
Feishu calendar sync, local ics to json data for AI agent

将ICS日历文件转为JSON格式,用于飞书日历导入导出及数据集成。

下载
  • 利用 new FormData(formElement) 自动采集所有控件值(包括文件、复选、单选、下拉等);
  • 调用 formData.getAll(key) 获取某字段全部值(对单选/文本框返回单元素数组,对复选框返回多元素数组);
  • 按需判断:若某字段有多个值 → 作为数组保留;否则取唯一值(values[0] 或 values.join(''))。

以下是完整、生产就绪的实现代码:

$('form').submit(function(e) {
  e.preventDefault();

  const form = e.target;
  const formData = new FormData(form);
  const data = {};

  // 遍历所有字段名(去重)
  [...new Set(formData.keys())].forEach(key => {
    const values = formData.getAll(key);
    // 若该字段仅有一个值,直接取字符串;否则保留数组
    data[key] = values.length === 1 ? values[0] : values;
  });

  console.log(data);
  // 输出示例:
  // {
  //   name: "Andi",
  //   password: "pass",
  //   role: "teacher",
  //   hobby: ["Sport"],
  //   description: "I like programming",
  //   city: "Jakarta"
  // }

  // 直接用于 AJAX 提交(jQuery 自动处理键值对编码)
  $.ajax({
    url: 'path/to/submit',
    type: 'POST',
    data: data,
    success: (res) => {
      console.log('提交成功:', res);
    },
    error: (xhr) => {
      console.error('提交失败:', xhr);
    }
  });
});

✅ 关键优势说明

  • 天然兼容所有表单控件:FormData 原生支持 <input type="file">、<select multiple>、复选框组、单选组,无需额外适配;
  • 自动去重与聚合:getAll() 确保不遗漏同名字段(如多个 hobby),Set(formData.keys()) 避免重复遍历;
  • 类型语义准确:单选/文本/下拉 → 字符串;复选/多选 → 数组;空值自动为 "" 或 [](取决于 DOM 状态);
  • 零依赖、高性能:不依赖第三方库,无正则解析或字符串拆分,执行效率高。

⚠️ 注意事项

  • formData.getAll(key) 在无匹配字段时返回空数组 [],如需默认值(如 hobby: []),可加空值校验:
    data[key] = values.length ? (values.length === 1 ? values[0] : values) : [];
  • 若后端要求严格 JSON 格式(如需发送 Content-Type: application/json),请配合 JSON.stringify() 并设置 contentType: 'application/json',此时需确保值类型可序列化(如避免 File 对象);
  • jQuery 3.0+ 中 $.ajax({ data }) 会自动将对象序列化为 x-www-form-urlencoded,与服务端常规接收方式完全兼容。

通过这一方案,你既能保留 jQuery 的简洁事件绑定与 AJAX 封装,又能获得现代、语义化的表单数据结构,大幅提升表单处理的可维护性与扩展性。

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2035

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2982

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1016

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3359

2025.09.10

jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

581

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1016

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2142

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

2128

2023.12.04

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery官方API文档
jQuery官方API文档

共0课时 | 0人学习

jQuery 教程
jQuery 教程

共42课时 | 16.2万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 18.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn