簡體   English   中英

JS,FormData中的append數組如何?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM