Javascript 访问嵌套Json
我从Google脚本编辑器中的API调用中得到了这个结果Javascript 访问嵌套Json,javascript,arrays,object,Javascript,Arrays,Object,我从Google脚本编辑器中的API调用中得到了这个结果 "data": [ { "name": "page_engaged_users", "period": "day", "values": [ { "value": 13521,
"data": [
{
"name": "page_engaged_users",
"period": "day",
"values": [
{
"value": 13521,
"end_time": "2021-02-22T08:00:00+0000"
}
],
"title": "Daily Page Engaged Users",
"description": "Daily: The number of people who engaged with your Page. Engagement includes any click or story created. (Unique Users)",
"id": "231123/insights/page_engaged_users/day"
},
{
"name": "page_post_engagements",
"period": "day",
"values": [
{
"value": 18963,
"end_time": "2021-02-22T08:00:00+0000"
}
],
"title": "Daily Post Engagements",
"description": "Daily: The number of times people have engaged with your posts through like, comments and shares and more.",
"id": "231123/insights/page_post_engagements/day"
},
{
"name": "page_impressions_unique",
"period": "day",
"values": [
{
"value": 347696,
"end_time": "2021-02-22T08:00:00+0000"
}
我有一个脚本,可以很好地处理不同的调用,所以我使用相同的脚本。
脚本如下所示
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('Sheet1');
var response = UrlFetchApp.fetch( "Api call");
var dataAll = JSON.parse(response.getContentText());
var dataSet = dataAll.data;
var rows = [],
data;
for (i = 0; i < dataSet.length; i++) {
data = dataSet[i];
rows.push([data.values[0].value]); //your JSON entities here
}
Logger.log(rows)
sheet.getRange(sheet.getLastRow() + 1, 1, rows.length,1).setValues(rows);
}
var spreadsheet=SpreadsheetApp.getActiveSpreadsheet();
var sheet=spreadsheet.getSheetByName('Sheet1');
var response=UrlFetchApp.fetch(“Api调用”);
var dataAll=JSON.parse(response.getContentText());
var数据集=dataAll.data;
变量行=[],
数据;
对于(i=0;i
因此,当我推送data.values[0].value时,我会得到所有的值,但我只想要第一个。我做错了什么?您的回答
数据
是错误的。您拥有的for循环正在该循环上迭代
for (i = 0; i < dataSet.length; i++) {
data = dataSet[i];
rows.push([data.values[0].value]); //your JSON entities here
}
for(i=0;i
如果希望只推送第一个对象的值。您不需要循环,因为您只需要获取数据的第一个索引中的内容。只需使用dataSet[0]
直接访问第一个位置,例如dataSet[0]。值[0]。值
(您已经在使用相同的方法访问数组值的第一个元素
)
下面是一个示例,说明如何获取此处显示的数据数组值中的第一个对象-