如何使用API​​请求返回的json从数组中拉出嵌套对象?

时间:2019-10-24 21:34:29

标签: javascript arrays json monday.com

我有一个API用来返回查询。此查询的格式不能更改为更易于操作。它内有一个嵌套数组,我需要将其与更高级别的数据相关联。

具体来说,我正在尝试提取“ column_values”中的较高级别的id字段和“ value”字段,并最好在一个新数组中将它们彼此关联。我觉得答案就在这里,但我只是不知道如何以正确的格式提取数据并将其关联在一起。大多数注释行可能会被忽略,这是我使语法正确运行的其他尝试。对不起,一团糟。我真的很陌生。

    const axios = require('axios')



const body = {
    query: ` query {boards(ids:307027197) {name, items {name id column_values(ids:lockbox_) {title id value text}}}} `,
  }
console.log("Requesting Query....");


function getApi (callback){
    setTimeout(function() {axios.post(`https://api.monday.com/v2`, body, {
        headers: {
            MY_API_KEY_DATA
          },
      })
      .catch(err => {
        console.error(err.data)
      })
      .then(res => {
          var queried = res
          var array = queried.data.data.boards[0].items
                  //console.log(queried)
                  //console.log(array)
             console.log(array.length)
                  //console.log("Total Items:", array.length)
          var i;
          for (i = 0; i < array.length; i++){

            callback(queried.data.data.boards[0].items)

          //callback([(queried.data.data.boards[0].items[i].column_values[0])])

        }
    }, 0);
})
};
getApi(callback => {
    console.log(callback)

            //console.log(parsed)
                //output for above
                //{"name":"address","id":"1234","column_values": 
                //[{"title":"Lockbox#","id":"lockbox_","value":"\"31368720\"","text":"31368720"}]}

            //console.log(JSON.parse(parsed))
             //output for above
            //[
            //       {
            //           name: 'address',
            //           id: '353428429',
            //           column_values: [ [Object] ]
            //       }
            //]
});
setTimeout(function() {
console.log("Query Returned")},1000);

1 个答案:

答案 0 :(得分:0)

从您的数据来看,column_values是其中包含对象的数组。对于阵列,您将必须使用键来访问它。就您而言,如果您的数据是 var data = { “ name”:“地址”, “ id”:“ 1234”, “ column_values”:[{“ title”:“ Lockbox#”,“ id”:“ lockbox _”,“ value”:“ \” 31368720 \“”,“ text”:“ 31368720”}] }

您可以将column_values的ID作为data.column_values [0] .id

访问