我有一个表单需要转换为javascript对象才能继续进行。
使用
输出表格var theForm = ev.target as HTMLFormElement;
var formData = new FormData(theForm);
for (let pair of formData.entries()) {
console.log(`${pair[0]}, ${pair[1]}`);
}
导致以下
firstName, test
lastName, user
nickName, nickname
socialMedia[0]["id"], 2501A153-2940-4A5D-91BD-A1A9537A3E69
socialMedia[0]["url"], https://www.facebook.com/someuser
socialMedia[1]["id"], 5499E656-4151-4B5A-914E-3159865B9B49
socialMedia[1]["url"], https://www.twitter.com/someuser
这些是需要转换为的类定义:
class PlayerObject {
firstName?: string;
lastName?: string;
nickName?: string;
socialMedia?: SocialMediaObject[];
}
class SocialMediaObject {
id?: string;
url?: string;
}
我的问题是嵌套对象(在这种情况下为SocialMediaObject
)。最终的对象应如下所示:
{
"firstName": "test",
"lastName": "user",
"nickName": "nickname",
"socialMedia": [
{
"id": "2501A153-2940-4A5D-91BD-A1A9537A3E69",
"url": "https://www.facebook.com/someuser"
},
{
"id": "5499E656-4151-4B5A-914E-3159865B9B49",
"url": "https://www.twitter.com/someuser"
}
]
}
我没有可以使用的框架。所以它必须是纯粹的js。
使用JSON.stringify/parse
有什么办法吗?
名称应该设置不同,例如socialMedia[0].url
或socialMedia.0.url