form表单提交的 name=[] 转json
时间: 2023-12-05 19:03:26 浏览: 38
假设表单中的 name 属性值为 "formName",则可以通过以下 JavaScript 代码将表单数据转换为 JSON 格式:
```javascript
const form = document.querySelector('form');
const formData = new FormData(form);
const jsonObject = {};
for (const [key, value] of formData.entries()) {
jsonObject[key] = value;
}
const json = JSON.stringify(jsonObject);
console.log(json);
```
在这个例子中,首先通过 `FormData` 对象获取表单数据,然后使用 `for...of` 循环遍历表单数据中的每个键值对,并将它们添加到一个空的 JavaScript 对象中。最后,使用 `JSON.stringify` 方法将 JavaScript 对象转换为 JSON 字符串。
相关问题
表单提交的 name=keyword[] 如何转json
假设表单中的 name 属性值为 "keyword[]",则可以通过以下 JavaScript 代码将表单数据转换为 JSON 格式:
```javascript
const form = document.querySelector('form');
const formData = new FormData(form);
const jsonObject = {};
for (const [key, value] of formData.entries()) {
if (key.endsWith('[]')) {
const keyWithoutBrackets = key.slice(0, -2);
if (!jsonObject[keyWithoutBrackets]) {
jsonObject[keyWithoutBrackets] = [];
}
jsonObject[keyWithoutBrackets].push(value);
} else {
jsonObject[key] = value;
}
}
const json = JSON.stringify(jsonObject);
console.log(json);
```
在这个例子中,首先通过 `FormData` 对象获取表单数据,然后使用 `for...of` 循环遍历表单数据中的每个键值对,并将它们添加到一个空的 JavaScript 对象中。当键的名称以 "[]" 结尾时,我们将其解析为一个数组,如果该键还不存在,则将其初始化为空数组。最后,使用 `JSON.stringify` 方法将 JavaScript 对象转换为 JSON 字符串。
注意,这个例子假设每个 "keyword[]" 输入框的名称都相同,即这些输入框都属于同一个字段。如果这些输入框的名称不同,你需要稍微修改一下代码来处理这种情况。
jQuery转换form表单数据为json格式
可以使用 jQuery 的 serializeArray() 方法将表单数据转换为数组,然后再将数组转换为 JSON 格式。下面是示例代码:
```javascript
var formArray = $('#myForm').serializeArray();
var formData = {};
$.map(formArray, function(n, i){
formData[n['name']] = n['value'];
});
var jsonData = JSON.stringify(formData);
console.log(jsonData);
```
其中,`#myForm` 是表单的 ID,`serializeArray()` 方法会将表单数据转换为数组,数组中的每个元素都包含 `name` 和 `value` 两个属性。然后使用 `map()` 方法将数组转换为 JSON 格式。
注意,如果表单中有多个同名的表单元素,则会将它们的值合并为一个数组,因此需要根据实际情况进行处理。