我想獲取存盤在 FormData 中的值的整個嵌套物件(帶有所有道具)。這個有可能?
例子
const formData = new FormData();
formData.append('k1', 123);
formData.append('k2', 'ABC');
formData.append('k3', {
a: 1,
b: '2'
});
data = {};
formData.forEach((value, key) => {
console.log(`Key: ${key}`, {
key,
value,
type: typeof(value),
getResult: formData.get(key),
getAllResult: JSON.stringify(formData.getAll(key))
});
data[key] = value;
});
console.warn('Final result', {
data
});
.as-console-wrapper {
max-height: 100% !important;
}
有一種方法可以在k3不使用 jQuery 或任何外部庫的情況下捕獲鍵和值?
uj5u.com熱心網友回復:
好的,所以這不是您所追求的,但是這里有。如果你想為你的k3值傳遞一個物件,那么你stringify首先需要它。然后,您需要將其決議回您想要使用它的物件。我已經更新了您上面的代碼以對值進行字串化,并嘗試在您的除錯中將其決議出來(以便您可以看到它)
const formData = new FormData();
formData.append('k1', 123);
formData.append('k2', 'ABC');
formData.append('k3', JSON.stringify({
a: 1,
b: '2'
}));
data = {};
formData.forEach((value, key) => {
console.log(`Key: ${key}`, {
key,
value,
type: typeof(value),
rawResult: formData.get(key),
potentialObjResult: (function(val){
let potential = undefined;
try {
potential = JSON.parse(val);
} catch(ex){
console.log('could not parse: <' val '> as JSON');
}
return potential;
})(formData.get(key))
});
data[key] = value;
});
console.warn('Final result', {
data
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/459409.html
標籤:javascript json 目的 表单数据
