表单中的 name 属性值为 "keyword[]" 如何转json数组
时间: 2024-02-24 15:56:38 浏览: 20
可以使用 JavaScript 的 JSON.stringify() 方法将表单数据转换为 JSON 格式的字符串,然后再使用 JSON.parse() 方法将字符串解析为 JSON 对象或数组。对于 name 属性值为 "keyword[]" 的表单数据,可以使用 FormData 对象来收集数据,并使用 Array.from() 方法将 FormData 对象转换为数组,然后再使用 JSON.stringify() 方法将数组转换为 JSON 格式的字符串,例如:
```javascript
// 假设表单的 name 属性值为 "keyword[]"
const form = document.querySelector('form');
const formData = new FormData(form);
const keywords = Array.from(formData.getAll('keyword[]'));
const jsonKeywords = JSON.stringify(keywords);
console.log(jsonKeywords); // 输出 JSON 格式的字符串
```
上述代码将表单中所有 name 属性值为 "keyword[]" 的数据收集到一个数组中,然后使用 JSON.stringify() 方法将数组转换为 JSON 格式的字符串,并将结果输出到控制台。
相关问题
php输出表单为json数组举例
好的,我可以回答这个问题。在PHP中,可以使用json_encode()函数将表单数据转换为JSON数组。例如,以下是将一个包含表单数据的关联数组转换为JSON数组的示例代码:
```
<?php
$formData = array(
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'phone' => '123-456-7890'
);
$jsonData = json_encode($formData);
echo $jsonData;
?>
```
该代码将输出以下JSON字符串:
```
{"name":"John Doe","email":"johndoe@example.com","phone":"123-456-7890"}
```
希望这可以帮助您解决问题。
表单提交的 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[]" 输入框的名称都相同,即这些输入框都属于同一个字段。如果这些输入框的名称不同,你需要稍微修改一下代码来处理这种情况。