如何使用返回 json 的 api 请求从数组中提取嵌套对象?
How do I pull a nested object out of an array with an api request returned json?
我有一个 API 正在调用 return 查询。无法更改此查询的格式以使其更易于操作。它内部有一个嵌套数组,我需要将其与更高级别的数据相关联。
具体来说,我正在尝试提取更高级别的 id 字段和 "column_values" 中的 "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);
根据您的数据,column_values 是一个包含对象的数组。对于数组,您必须使用密钥访问它。对于您的情况,如果您的数据是
变种数据= {
"name":"address",
"id":"1234",
"column_values": [{"title":"Lockbox#","id":"lockbox_","value":"\"31368720\"","text":"31368720"}]
}
您可以访问 column_values 的 ID 作为 data.column_values[0].id
我有一个 API 正在调用 return 查询。无法更改此查询的格式以使其更易于操作。它内部有一个嵌套数组,我需要将其与更高级别的数据相关联。
具体来说,我正在尝试提取更高级别的 id 字段和 "column_values" 中的 "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);
根据您的数据,column_values 是一个包含对象的数组。对于数组,您必须使用密钥访问它。对于您的情况,如果您的数据是 变种数据= { "name":"address", "id":"1234", "column_values": [{"title":"Lockbox#","id":"lockbox_","value":"\"31368720\"","text":"31368720"}] }
您可以访问 column_values 的 ID 作为 data.column_values[0].id