[英]JS, how to append array in FormData?
我希望 js FormData 中的 append 數組。
像這樣,
var fd = new FormData();
fd.append("key", new Array(["a","b","c"]));
console.log(fd.get("key"));
結果是,
a,b,c
結果類型是“字符串”...
我想在 java(JSONArray) 中解析“aa”數組。
請幫我。
您需要先對數據進行字符串化:
fd.append("key", JSON.stringify(["a","b","c"]));
然后當你想檢索數據時,將它解析回一個數組。 這可以使用JSON.parse()
手動完成,或者,如果您使用 express,可以使用 JSON/urlencoded body-parser 中間件為您完成。
說明:
當您使用.append()
,作為第二個參數傳遞的數據將被轉換為字符串。 對於數組,將調用.toString()
方法,該方法通過逗號連接數組內的元素
a,b,c
這並不好,因為它無法輕松解析回數組,尤其是當您擁有復雜數組(例如對象數組或多維數組)時。
但是,正如@Phil 所指出的,您可以通過在輸入數組上使用JSON.stringify
來管理它。 這樣,您就提供了一個 JSON 字符串,可以使用JSON.parse()
輕松地將其解析回數據
"[\"a\",\"b\",\"c\"]" // <-- can be parsed into an array using JSON.parse()
請參閱下面的工作示例:
var fd = new FormData(); fd.append("key", JSON.stringify(["a","b","c"])); var str_arr = fd.get("key"); console.log(str_arr); // string format console.log(JSON.parse(str_arr)); // array format
最簡單的方法是將 append 一個數組轉換為formdata。
樣本數組
常量數組= [{值:2,label:'測試'},{值:2,label:'測試'},]
for (let index = 0; index < array.length; index++) {
data.append(`array[${index}][value]`, array[index].value);
data.append(`array[${index}][label]`, array[index].label);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.