在前端開發(fā)中,我們通常會(huì)使用form表單來提交數(shù)據(jù),但是在一些場(chǎng)景下,我們需要將form表單轉(zhuǎn)換成json字符串來進(jìn)行后續(xù)的數(shù)據(jù)處理。本文將介紹如何將form表單轉(zhuǎn)換成json字符串。
方法一:使用jQuery序列化 jQuery提供了serializeArray()方法和serialize()方法,可以將表單數(shù)據(jù)序列化為JSON字符串或URL參數(shù)字符串。其中,serializeArray()方法序列化后的數(shù)據(jù)格式為JSON數(shù)組,而serialize()方法序列化后的數(shù)據(jù)格式為URL參數(shù)字符串。 示例代碼如下: var formData = $("form").serializeArray(); // 將表單數(shù)據(jù)序列化為JSON數(shù)組 var jsonString = JSON.stringify(formData); // 將JSON數(shù)組轉(zhuǎn)換為JSON字符串
方法二:使用FormData對(duì)象和ES6的Map對(duì)象
FormData對(duì)象可以很方便地獲取表單數(shù)據(jù),ES6的Map對(duì)象可以很方便地將表單數(shù)據(jù)轉(zhuǎn)換成JSON對(duì)象。 示例代碼如下: const formData = new FormData(document.forms[0]); // 獲取表單數(shù)據(jù) const json = Object.assign(...Array.from(formData.entries()).map(([name, value]) =>({[name]: value}))); // 使用Map對(duì)象將表單數(shù)據(jù)轉(zhuǎn)換為JSON對(duì)象 const jsonString = JSON.stringify(json); // 將JSON對(duì)象轉(zhuǎn)換為JSON字符串
以上兩種方法均可將form表單轉(zhuǎn)換成json字符串,使用哪種方法取決于實(shí)際需求和個(gè)人習(xí)慣。