如何将从firebase检索到的单个json记录转换为数组

如何将从firebase检索到的单个json记录转换为数组,firebase,vuejs2,axios,Firebase,Vuejs2,Axios,我试图从firebase中提取一条记录用于vuejs,但我不知道如何将其转换为数组,如果这是我应该做的 我的变异 GET_CASE(state, caseId) { state.caseId = caseId; }, 我的行动 getCase ({ commit, context }, data) { return axios.get('http' + data + '.json') .then(res => { const convertcase = []

我试图从firebase中提取一条记录用于vuejs,但我不知道如何将其转换为数组,如果这是我应该做的

我的变异

GET_CASE(state, caseId) {
  state.caseId = caseId;
},
我的行动

getCase ({ commit, context }, data) {
  return axios.get('http' + data + '.json')
  .then(res => {
    const convertcase = []
      convertcase.push({ data: res.data })
    //result below of what is returned from the res.data
    console.log(convertcase)
   // commit('GET_CASE', convertcase)
  })
  .catch(e => context.error(e));
},
我现在将以下内容返回到{{myCase}

[ { "data": { case_name: "Broken laptop", case_status: "live", case_summary: "This is some summary content", contact: "", createdBy: "Paul", createdDate: "2018-06-21T15:20:22.932Z", assessor: "Gould", updates: "" } } ] 
当我只想展示坏掉的笔记本电脑时


谢谢

把这个放在你的
里面/后面。然后

    Object.keys(data).forEach(function(k, i) {
        console.log(k, i);
    });

通过Axios的响应,您可以通过以下方式获取数据:

res.data.case_name
res.data.case_number
....
只需构建包含这些属性的JavaScript对象,并将该对象传递给您的用户。我认为这比使用数组要好

const obj = {};
Object.assign(obj, res.data);
commit('GET_CASE', obj)
在你的变异过程中,你要做如下的事情:

mutations: {
  GET_CASE (state, payload) {
    for (var k in payload) {
        if (payload.hasOwnProperty(k)) {
            state[k] = payload[k]
        }
    }
  }
}
state: {
    case: {},
    ...
},
getters: {
    getCase: state => {
       return state.case
    },
....
},
mutations: {
  GET_CASE (state, payload) {
    state.case = payload
  }
}
const case = this.$store.getters.getCase
..... = case.case_name

或者,您可以按如下方式对您的商店进行编码:

mutations: {
  GET_CASE (state, payload) {
    for (var k in payload) {
        if (payload.hasOwnProperty(k)) {
            state[k] = payload[k]
        }
    }
  }
}
state: {
    case: {},
    ...
},
getters: {
    getCase: state => {
       return state.case
    },
....
},
mutations: {
  GET_CASE (state, payload) {
    state.case = payload
  }
}
const case = this.$store.getters.getCase
..... = case.case_name
大小写
字段的值调用为组件,如下所示:

mutations: {
  GET_CASE (state, payload) {
    for (var k in payload) {
        if (payload.hasOwnProperty(k)) {
            state[k] = payload[k]
        }
    }
  }
}
state: {
    case: {},
    ...
},
getters: {
    getCase: state => {
       return state.case
    },
....
},
mutations: {
  GET_CASE (state, payload) {
    state.case = payload
  }
}
const case = this.$store.getters.getCase
..... = case.case_name

示例
let-obj={a:1,b:'a');let-arr=Object.values(obj)//arr=[1,'a']

async getCase ({ commit, context }, url) {
  try {
    let { data } = await axios.get(`http${url}.json`)
    commit('myMutation', Object.values(data))
  } catch (error) {
    context.error(error)
  }
}
但当我再次阅读你的文章时,我认为你不需要对象的数组。你需要一个对象的数组。所以,也许这就是你想要的:

async getCase ({ commit, context }, url) {
  try {
    let { data } = await axios.get(`http${url}.json`)
    commit('myMutation', [data])
  } catch (error) {
    context.error(error)
  }
}

你能在你的帖子中添加你收到的JSON的内容,以及你的GET_案例变异的代码吗?谢谢你的关注,请参阅更新我目前的位置我已经再次更新了答案。你能确认它有效吗?我不能100%确定这是否适用于Vuex state。嗨,再次感谢,第一个示例显示了正确的对象,如果我记录有效负载,但我现在如何访问组件中的各个字段…感谢删除,相对于第二个字段,如果我通过如下突变返回,我将如何从组件访问my突变(state,theCase){state.theCase=theCase;},我假设了case.case\u的名称,但这不起作用。我的状态是case:[]好的,稍后我将编写完整的示例。包括动作、突变、getter和组件。哇,这太棒了,谢谢,你可以肯定地告诉我,我是新手,非常喜欢学习如何通过Axios与firebase交互。非常感谢你的帮助。你能为我修改这个示例吗?谢谢