javascript - Javascript插入对象以形成数据
问题描述
我想将对象转换为表单数据。在我必须向这个对象添加一个对象之前,我没有问题。
如何将 json 对象添加到我的表单数据中?
这是我要转换为 formData 的对象,它必须保持完全相同的格式。
{
"product": {
"name": "Produit Comp 2",
"abbreviation": "prod_comp_2",
"quantity": 4,
"weight": 100,
"tva": 21,
"size": 10,
"height": 24,
"width": 23,
"category_id": 91,
"sub_category_id": 88,
"status": 1,
"price_unit": {
"price_day_1": 73.43,
"price_day_2": 74.43,
"price_day_3": 75.43
},
"price_loaded": {
"price_day_1": 75.43,
"price_day_2": 76.43,
"price_day_3": 77.43
},
"price_installation": {
"price_day_1": 78.43,
"price_day_2": 79.43,
"price_day_3": 70.43
},
"price_built_delivered": {
"price_day_1": 71.43,
"price_day_2": 72.43,
"price_day_3": 73.43
}
}}
这是我要转换的实际功能。我的表单数据只缺少 price_unit、price_loaded、price_installation、price_built_delivered 对象。我怎样才能添加它们?
private toProductDto(product: Product): FormData {
console.log('service', product);
let formData = new FormData();
if (product.id) { formData.append('id', '' + product.id); }
if (product.name) { formData.append('name', product.name); }
if (product.category) { formData.append('category_id', '' + product.category.id); }
// Set subcategory to null if it's not defined on sending
if (product.sub_category) {
formData.append('sub_category_id', '' + product.sub_category.id);
} else {
formData.append('sub_category_id', null);
}
formData.append('status', '' + product.status);
if (product.image) { formData.append('image', product.image, product.image.name); }
if (product.description) { formData.append('description', '' + product.description); }
if (product.quantity) { formData.append('amount', '' + product.quantity); }
if (product.weight) { formData.append('weight', '' + product.weight); }
if (product.length) { formData.append('length', '' + product.length); }
if (product.width) { formData.append('width', '' + product.width); }
if (product.height) { formData.append('height', '' + product.height); }
if (product.tva) { formData.append('tva', '' + product.tva); }
if (product.options) { formData.append('options', '' + product.options); }
if (product.numbers_players) { formData.append('numbers_players', '' + product.numbers_players); }
return formData;
}
在此先感谢您的帮助。
解决方案
这是我要转换为 formData 的对象,它必须保持完全相同的格式。
这本身是不可能的。FormData 表示一组平面key=value
对。
您需要进行某种形式的序列化。
例如,其中带有JSON.stringify
或 PHP 样式的键名[]
。
然后,您必须解码服务器端代码中的序列化结构。
推荐阅读
- postgresql - 在 Postgres 中保存行时出错,如何解决?
- java - 如何在 Spring 配置中以 MB 或 GB 为单位指定 maxInMemorySize
- kubernetes - GCE Image 突然找不到
- c# - 如何加快两个循环的进程
- html - 使 HTML 表格具有响应性
- c# - JSON 字符串到 C# 类对象
- elixir - 在 Elixir 中,如何总结非 UTF-8 二进制文件中的所有字节?
- git - 如何一次接受 VSCode 中的所有当前更改?
- json - JSON - 多行字符串输出的数组错误 节点 | 节点请求
- c# - 将三角形对象保存在列表中并再次绘制