gpt4 book ai didi

jquery - 将表数据转换为 JSON

转载 作者:行者123 更新时间:2023-12-01 01:09:02 27 4
gpt4 key购买 nike

我正在尝试将 HTML 表中的数据转换为 JSON,以便可以在服务器端进行相应的处理。我能够序列化数据,但结果最多生成不直接链接的不同数据数组。喜欢:这是我正在使用的表格:

<form id="nameGenderForm">
<table id="nameGenderTable">

<tr>
<th >Name</th>
<th >Gender</th>
</tr>


<tr>
<td><input type="text" name="studentName"></td>
<td>
<select name="studentGender">
<option value="male">male</option>
<option value="female">female</option>
</select>
</td>
</tr>

<tr>
<td><input type="text" name="studentName"></td>
<td>
<select name="studentGender">
<option value="male">male</option>
<option value="female">female</option>
</select>
</td>
</tr>
</table>
<input type="submit" />
</form>

序列化数据的脚本是:

$("#nameGenderForm").submit(function(event){
event.preventDefault();

var rawData=$('#nameGenderForm').serializeFormJSON();
var formData=JSON.stringify(rawData);
console.log(formData);
});

serializeFormJSON() 是我浏览了几页 StackOverFlow 后得到的:

(function($) {
$.fn.serializeFormJSON = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
})(jQuery);

通过使用所有这些,我可以获得如下 JSON:

{"studentName":["kenpachi","orihime"],"studentGender":["male","female"]}

我尝试了很多方法来将它们转换为姓名-性别格式,但每种方法都会产生相同的结果。两个不同的数组。对每个人使用表格也没有帮助。有没有办法获取姓名-性别数组中的数据,如下所示:

{"studentName":"kenpachi","studentGender":"male"},{"studentName":"orihime","studentGender":"female"}

请指教。

最佳答案

Here you go with demo ,做了一些细微的修改,如下所示:

循环遍历每个表格行,找到输入、文本区域和选择类型元素,将它们序列化,转换为对象,然后推送到数组。

    var o = [];
$(this).find('tr').each(function() {
var $this = $(this);
var $elements = $this.find('input, textarea, select')
if ($elements.size() > 0) {
var serialized = $elements.serialize();
var item = $.toDictionary( serialized );
o.push(item);
}
});

P.S.向 jquery 库添加了一个名为 toDictionary 的新函数,因此请确保将其也包含在代码中。

$.toDictionary函数

(function($) {
$.extend({
toDictionary: function(query) {
var parms = {};
var items = query.split("&"); // split
for (var i = 0; i < items.length; i++) {
var values = items[i].split("=");
var key = decodeURIComponent(values.shift());
var value = values.join("=")
parms[key] = decodeURIComponent(value);
}
return (parms);
}
})
})(jQuery);

关于jquery - 将表数据转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12602443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com