Json Vue.js-如何通过axios响应数据从对象获取指定字段
这是我的JSON对象Json Vue.js-如何通过axios响应数据从对象获取指定字段,json,vue.js,vuejs2,axios,vue-component,Json,Vue.js,Vuejs2,Axios,Vue Component,这是我的JSON对象 { "id": 2, "dani": 5, "asset": { "id": 2, "code": "1", "name": "asset1", "descr": null, "ver
{
"id": 2,
"dani": 5,
"asset": {
"id": 2,
"code": "1",
"name": "asset1",
"descr": null,
"version": "2020-09-01T15:39:53.821+0000",
"model": {
"id": 3,
"code": "4",
"name": "ZXc43V",
"descr": "",
"version": "2020-09-01T15:22:36.953+0000",
"year": "2020-03-26"
},
"location": {
"id": 1,
"code": "4",
"name": "Lokacija 5",
"descr": "",
"version": "2020-06-03T12:22:55.693+0000",
"adress": "Obilicev venac 24",
"dateFrom": "2020-06-03",
"dateTo": "2022-05-07",
"active": false
}
}
}
假设我已经声明了数组“资产[]”。
我想用它做的是当我使用
axios.get('url').then(response => this.array = response.data
我想从我的对象(response.data提供)中提取资产的名称(asset.name),并在数组“assets[]”中只放置资产的名称,因此它只包含JSON对象中的资产名称,而不包含其他内容
谢谢您可以使用
map
功能,如下所示:
this.assets=response.data.map(item=>({name:item.asset.name}));
或者,如果您不需要该字段:
this.assets=response.data.map(item=>item.asset.name);
您可以迭代对象并将其推入数组
axios.get('url').then((response) => {
response.data.forEach((item) => {
this.assets.push(item.asset.name)
})
})
谢谢你的回复。在我发布这个问题之前,我尝试了你的第二个选项(我也尝试了你的第一个选项),但是我得到了这个错误:“未捕获(承诺中)TypeError:item.asset未定义”。响应的输出是什么。数据是什么?好的,nvm,我在axios请求中一直有错误的url(在这方面损失了2个小时)。。。。。。现在可以用了(duh)。我会留下这个问题,以防将来有人需要。再次感谢你,你真的很有帮助。虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高你的文章质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。