如何读取FormData对象内数据并转字符串 解决console打印为空问题
直接打印FormData看不到存入数据的原因
FormData是浏览器提供的专用接口,存储的键值对不会挂载到实例的可枚举对象属性上,因此直接打印实例只会显示FormData { },用普通对象的属性查找方式也读不到append进去的内容,属于正常现象,不代表数据写入失败。
读取数据、转字符串的实现方法
- 读取单条指定数据:调用实例的
get()方法传入键名即可拿到对应值,可直接转换为字符串
const formData = new FormData(); formData.append('name1', 'value1'); // 读取name1对应的值 const targetVal = formData.get('name1'); // 转换为字符串 const valStr = String(targetVal); console.log(valStr); // 输出: "value1"
- 遍历查看全量数据:使用FormData自带的遍历方法操作,不要直接遍历实例对象本身
// 逐行打印所有键值对 for (const [key, value] of formData.entries()) { console.log(key, value); } // 把整个FormData转换为JSON格式字符串 const plainObj = {}; formData.forEach((value, key) => { plainObj[key] = value; }); const jsonStr = JSON.stringify(plainObj); console.log(jsonStr); // 输出: {"name1":"value1"}
注意:如果同一个键被多次append赋值,
get()方法只会返回第一个存入的值,需要获取该键下全部值时,请使用getAll(key)方法,返回结果为同键下所有值组成的数组。
内容的提问来源于stack exchange,提问作者Frank_G
相关产品推荐
相关产品推荐

