Javascript 如何从vue对象中动态提取数据,以便向后端发送POST请求?
我有一个包含所有这些getter和setter的vue对象,下面是console.log的屏幕截图: 实际数据的结构(不是vue内容)如下所示:Javascript 如何从vue对象中动态提取数据,以便向后端发送POST请求?,javascript,vue.js,axios,Javascript,Vue.js,Axios,我有一个包含所有这些getter和setter的vue对象,下面是console.log的屏幕截图: 实际数据的结构(不是vue内容)如下所示: { Internal_key: "TESTKEY_1", extensiontable_itc: { description_itc: "EXTENSION_ITC_1_1", description_itc2: "EXTENSION_ITC_1_2
{
Internal_key: "TESTKEY_1",
extensiontable_itc: {
description_itc: "EXTENSION_ITC_1_1",
description_itc2: "EXTENSION_ITC_1_2",
},
extensiontable_sysops: {
description_sysops: "EXTENSION_SYSOPS_1"
}
}
在其他用例中,数据可能看起来不同。
外部对象上可能有更多或更少的键值对,并且这些键的命名也可能不同。嵌套对象及其内容也是如此
是否有一些方便的方法将这些数据提取到一个普通的JS对象中?
如果不是,如何最好地循环vue对象以“手动”提取数据?
AJAX请求应通过axios请求执行,如果这也很重要的话
编辑:
以下是vue中的相关数据:
data() {
return {
editingRecord: {
original: null,
copy: null
}
}
}
在我的程序流程中,
editingRecord.original
和editingRecord.copy
都从输入表单接收数据。如果用户单击“保存/发送”按钮,“复制”将其数据设置为原始数据。然后,我想从editingRecord.original
中获取包含键和值的数据,并通过AJAX请求将它们发送到服务器。最好不要将jQuery与Vue混用,下面是使用Axios的方法
好的,我找到了解决办法
let vueObject = Object.entries(this.editingRecord.original)
for(const[key, value] of vueObject){
if(typeof value == 'object' && value !== null){
for(const [nestedKey, nestedValue] of Object.entries(value)){
result[nestedKey] = nestedValue
}
}else{
result[key] = value
}
}
console.log("resultObject is", result)
这样,您可以迭代所有属性,包括嵌套对象的属性,并将键和值重新分配给新的一维数组。VUEJ中的数据和要发送到服务器的数据没有明确的链接。您希望如何转换数据?你的问题一点也不清楚。@Terry你所说的链接是什么意思?你的VueJS应用程序中没有显示任何数据:那么我们怎么知道你想如何将数据转换为你在POST请求中想要的形状呢?@Terry查看我的编辑我希望这是你想要看到的。如果你用
this.editingRecord.original
作为正文?
let vueObject = Object.entries(this.editingRecord.original)
for(const[key, value] of vueObject){
if(typeof value == 'object' && value !== null){
for(const [nestedKey, nestedValue] of Object.entries(value)){
result[nestedKey] = nestedValue
}
}else{
result[key] = value
}
}
console.log("resultObject is", result)