如何用jQuery将数组对象转为字符串?Ajax表单提交数据需求
解决Ajax提交时将对象数组转为字符串的问题
嘿,看你已经成功根据Range值生成了对应数量的对象数组,要把这个数组转成字符串用于Ajax提交其实超简单,直接用JavaScript原生的JSON.stringify()方法就可以啦!
第一步:修正代码里的小问题
先提个细节,你代码里的变量名大小写不一致:var formdata=$(this).serializeArray(); 定义的是小写的formdata,但后面循环里用的是formData(大写D),这会导致循环无法正确执行,得先把这个统一过来,比如都改成formData:
var formData = $(this).serializeArray(); // 统一变量名大小写 var objList = []; for (var i = 1; i <= $("input[name=Range]").val(); i++) { tempObj = {}; $.each(formData, function (key, value) { if (value.name.startsWith("member")){ } else { tempObj[value.name] = value.value; } }); tempObj["member"] = $("input[name=member"+i+"]").val(); tempObj["Range"] = 1; objList.push(tempObj); }
第二步:将数组转为JSON字符串
生成数组后,直接用JSON.stringify()把数组转换成标准的JSON字符串,这是后端最容易解析的格式:
// 把对象数组转为JSON字符串 var requestData = JSON.stringify(objList); console.log(requestData); // 可以看到转后的字符串格式
第三步:Ajax提交时的注意事项
提交的时候记得设置contentType: 'application/json',告诉服务器你发送的是JSON格式的数据,不然后端可能无法正确解析:
// 发起Ajax请求 $.ajax({ url: '你的接口URL', method: 'POST', data: requestData, contentType: 'application/json', // 必须设置这个头部 success: function(res) { console.log('提交成功!返回结果:', res); }, error: function(err) { console.error('提交失败:', err); } });
这样就能完美把你的对象数组以字符串形式发送给后端啦!
内容的提问来源于stack exchange,提问作者Pankash Mann
相关产品推荐
相关产品推荐

