Json Vue.js-如何通过axios响应数据从对象获取指定字段

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

这是我的JSON对象

{
    "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)。我会留下这个问题,以防将来有人需要。再次感谢你,你真的很有帮助。虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高你的文章质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。