」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何將 HTML5 FormData 轉換為 JSON?

如何將 HTML5 FormData 轉換為 JSON?

發佈於2024-11-08
瀏覽:583

How do I Convert HTML5 FormData to JSON?

將 HTML5 FormData 轉換為 JSON

將 HTML5 FormData 物件的條目轉換為 JSON 是 Web 開發中的一項常見任務。雖然有多種方法可以實現此目的,但最直接、最有效的方法是直接在 FormData 物件上使用 forEach() 函數。

var object = {};
formData.forEach(function(value, key){
    object[key] = value;
});
var json = JSON.stringify(object);

此方法迭代 FormData 物件中的每個鍵值對,並將它們新增至新的 JavaScript 物件。然後使用 JSON.stringify() 方法將物件轉換為 JSON 字串。

更新:ES6 箭頭函數

對於喜歡ES6 語法的人來說,可以使用箭頭函數編寫相同的解決方案:

var object = {};
formData.forEach((value, key) => object[key] = value);
var json = JSON.stringify(object);

更新2:支援多值表單元素

支援多值表單元素,例如多選列表,可以使用以下代碼:

var object = {};
formData.forEach((value, key) => {
    if(!Reflect.has(object, key)){
        object[key] = value;
        return;
    }
    if(!Array.isArray(object[key])){
        object[key] = [object[key]];    
    }
    object[key].push(value);
});
var json = JSON.stringify(object);

更新3:透過XMLHttpRequest 和Fetch API 直接提交

可以使用以下方法將FormData 直接傳送到伺服器而不進行轉換XMLHttpRequest 物件或Fetch API:

var request = new XMLHttpRequest();
request.open('POST', 'http://example.com/submitform.php');
request.send(formData);
fetch('http://example.com/submitform.php', {
  method: 'POST',
  body: formData
}).then((response) => { 
  // do something with response here... 
});

更新4:複雜物件的JSON序列化

可以透過toJSON()方法為複雜物件定義自訂序列化邏輯。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3