我试图将以下JSON的部分内容读入google,似乎存在嵌套数组,我很难将这些数组插入到一个单元格中.主JSON
{
"lineItems": [
{
"name": "advertisers/1558261/lineItems/12317016",
"advertiserId": "1238261",
"campaignId": "1233305",
"insertionOrderId": "13016372",
"lineItemId": "12317016",
"displayName": "All | Routes| All Users | ABC | ABC-LI1",
"lineItemType": "LINE_ITEM_TYPE_DISPLAY_DEFAULT",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2020-04-15T12:51:42.929Z",
"partnerCosts": [
{
"costType": "PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER",
"feeType": "PARTNER_COST_FEE_TYPE_CPM_FEE",
"feeAmount": "1000000",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_PARTNER"
},
{
"costType": "PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID",
"feeType": "PARTNER_COST_FEE_TYPE_CPM_FEE",
"feeAmount": "0",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_DV360"
},
{
"costType": "PARTNER_COST_TYPE_DV360_FEE",
"feeType": "PARTNER_COST_FEE_TYPE_MEDIA_FEE",
"feePercentageMillis": "0",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_DV360"
},
{
"costType": "PARTNER_COST_TYPE_DEFAULT",
"feeType": "PARTNER_COST_FEE_TYPE_MEDIA_FEE",
"feePercentageMillis": "0",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_PARTNER"
}
],
"flight": {
"flightDateType": "LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM",
"dateRange": {
"startDate": {
"year": 2020,
"month": 4,
"day": 15
},
"endDate": {
"year": 2020,
"month": 4,
"day": 30
}
}
},
"budget": {
"budgetAllocationType": "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED",
"budgetUnit": "BUDGET_UNIT_CURRENCY"
},
"pacing": {
"pacingPeriod": "PACING_PERIOD_DAILY",
"pacingType": "PACING_TYPE_EVEN",
"dailyMaxMicros": "40100000"
},
"frequencyCap": {
"timeUnit": "TIME_UNIT_DAYS",
"timeUnitCount": 1,
"maxImpressions": 5
},
"partnerRevenueModel": {
"markupType": "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"
},
"conversionCounting": {
"postViewCountPercentageMillis": "100000",
"floodlightActivityConfigs": [
{
"1fI": "7517101",
"3PCdays": 30,
"2PVdays": 30
},
{
"1fI": "7541802",
"3PCdays": 30,
"2PVdays": 30
},
{
"1fI": "7552803",
"3PCdays": 30,
"2PVdays": 30
},
{
"1fI": "7517104",
"3PCdays": 30,
"2PVdays": 30
}
]
},
"bidStrategy": {
"fixedBid": {
"bidAmountMicros": "3610000"
}
},
"integrationDetails": {}
},
{
"name": "advertisers/1558261/lineItems/12317017",
"advertiserId": "1238261",
"campaignId": "1233305",
"insertionOrderId": "13016372",
"lineItemId": "12317017",
"displayName": "All | Routes| All Users | ABC | ABC-LI2",
"lineItemType": "LINE_ITEM_TYPE_DISPLAY_DEFAULT",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2020-04-01T16:06:19.831Z",
"partnerCosts": [
{
"costType": "PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER",
"feeType": "PARTNER_COST_FEE_TYPE_CPM_FEE",
"feeAmount": "1000000",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_PARTNER"
},
{
"costType": "PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID",
"feeType": "PARTNER_COST_FEE_TYPE_CPM_FEE",
"feeAmount": "0",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_DV360"
},
{
"costType": "PARTNER_COST_TYPE_DV360_FEE",
"feeType": "PARTNER_COST_FEE_TYPE_MEDIA_FEE",
"feePercentageMillis": "0",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_DV360"
},
{
"costType": "PARTNER_COST_TYPE_DEFAULT",
"feeType": "PARTNER_COST_FEE_TYPE_MEDIA_FEE",
"feePercentageMillis": "0",
"invoiceType": "PARTNER_COST_INVOICE_TYPE_PARTNER"
}
],
"flight": {
"flightDateType": "LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM",
"dateRange": {
"startDate": {
"year": 2020,
"month": 4,
"day": 15
},
"endDate": {
"year": 2020,
"month": 4,
"day": 30
}
}
},
"budget": {
"budgetAllocationType": "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED",
"budgetUnit": "BUDGET_UNIT_CURRENCY"
},
"pacing": {
"pacingPeriod": "PACING_PERIOD_DAILY",
"pacingType": "PACING_TYPE_EVEN",
"dailyMaxMicros": "26730000"
},
"frequencyCap": {
"timeUnit": "TIME_UNIT_DAYS",
"timeUnitCount": 1,
"maxImpressions": 5
},
"partnerRevenueModel": {
"markupType": "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"
},
"conversionCounting": {
"postViewCountPercentageMillis": "100000"
},
"bidStrategy": {
"fixedBid": {
"bidAmountMicros": "3610000"
}
},
"integrationDetails": {}
}
]
}
在floodlightActivityConfigs中,我需要这些数组位于一个单元格中
{ "1fI": "72217193", "3PCdays": 30, "2PVdays": 30 },{ "1fI": "75221840", "3PCdays": 30, "2PVdays": 30 }, { "1fI": "75222864", "3PCdays": 30, "2PVdays": 30 }, { "1fI": "75333184", "3PCdays": 30, "2PVdays": 30 }但是,当我试图推送它们时,只打印第一部分,在JSON示例中,第二个对象不包含floodlightActivityConfigs详细信息,这是预期的
我的代码下面是嵌入了JSON的代码,只是无法理解这一点
function testAPI2(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Mysheet');
var response = {"lineItems":[{"name":"advertisers/1558261/lineItems/12317016","advertiserId":"1238261","campaignId":"1233305","insertionOrderId":"13016372","lineItemId":"12317016","displayName":"All | Routes| All Users | ABC | ABC-LI1","lineItemType":"LINE_ITEM_TYPE_DISPLAY_DEFAULT","entityStatus":"ENTITY_STATUS_ACTIVE","updateTime":"2020-04-15T12:51:42.929Z","partnerCosts":[{"costType":"PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER","feeType":"PARTNER_COST_FEE_TYPE_CPM_FEE","feeAmount":"1000000","invoiceType":"PARTNER_COST_INVOICE_TYPE_PARTNER"},{"costType":"PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID","feeType":"PARTNER_COST_FEE_TYPE_CPM_FEE","feeAmount":"0","invoiceType":"PARTNER_COST_INVOICE_TYPE_DV360"},{"costType":"PARTNER_COST_TYPE_DV360_FEE","feeType":"PARTNER_COST_FEE_TYPE_MEDIA_FEE","feePercentageMillis":"0","invoiceType":"PARTNER_COST_INVOICE_TYPE_DV360"},{"costType":"PARTNER_COST_TYPE_DEFAULT","feeType":"PARTNER_COST_FEE_TYPE_MEDIA_FEE","feePercentageMillis":"0","invoiceType":"PARTNER_COST_INVOICE_TYPE_PARTNER"}],"flight":{"flightDateType":"LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM","dateRange":{"startDate":{"year":2020,"month":4,"day":15},"endDate":{"year":2020,"month":4,"day":30}}},"budget":{"budgetAllocationType":"LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED","budgetUnit":"BUDGET_UNIT_CURRENCY"},"pacing":{"pacingPeriod":"PACING_PERIOD_DAILY","pacingType":"PACING_TYPE_EVEN","dailyMaxMicros":"40100000"},"frequencyCap":{"timeUnit":"TIME_UNIT_DAYS","timeUnitCount":1,"maxImpressions":5},"partnerRevenueModel":{"markupType":"PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"},"conversionCounting":{"postViewCountPercentageMillis":"100000","floodlightActivityConfigs":[{"1fI":"7517101","3PCdays":30,"2PVdays":30},{"1fI":"7541802","3PCdays":30,"2PVdays":30},{"1fI":"7552803","3PCdays":30,"2PVdays":30},{"1fI":"7517104","3PCdays":30,"2PVdays":30}]},"bidStrategy":{"fixedBid":{"bidAmountMicros":"3610000"}},"integrationDetails":{}},{"name":"advertisers/1558261/lineItems/12317017","advertiserId":"1238261","campaignId":"1233305","insertionOrderId":"13016372","lineItemId":"12317017","displayName":"All | Routes| All Users | ABC | ABC-LI2","lineItemType":"LINE_ITEM_TYPE_DISPLAY_DEFAULT","entityStatus":"ENTITY_STATUS_ACTIVE","updateTime":"2020-04-01T16:06:19.831Z","partnerCosts":[{"costType":"PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER","feeType":"PARTNER_COST_FEE_TYPE_CPM_FEE","feeAmount":"1000000","invoiceType":"PARTNER_COST_INVOICE_TYPE_PARTNER"},{"costType":"PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID","feeType":"PARTNER_COST_FEE_TYPE_CPM_FEE","feeAmount":"0","invoiceType":"PARTNER_COST_INVOICE_TYPE_DV360"},{"costType":"PARTNER_COST_TYPE_DV360_FEE","feeType":"PARTNER_COST_FEE_TYPE_MEDIA_FEE","feePercentageMillis":"0","invoiceType":"PARTNER_COST_INVOICE_TYPE_DV360"},{"costType":"PARTNER_COST_TYPE_DEFAULT","feeType":"PARTNER_COST_FEE_TYPE_MEDIA_FEE","feePercentageMillis":"0","invoiceType":"PARTNER_COST_INVOICE_TYPE_PARTNER"}],"flight":{"flightDateType":"LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM","dateRange":{"startDate":{"year":2020,"month":4,"day":15},"endDate":{"year":2020,"month":4,"day":30}}},"budget":{"budgetAllocationType":"LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED","budgetUnit":"BUDGET_UNIT_CURRENCY"},"pacing":{"pacingPeriod":"PACING_PERIOD_DAILY","pacingType":"PACING_TYPE_EVEN","dailyMaxMicros":"26730000"},"frequencyCap":{"timeUnit":"TIME_UNIT_DAYS","timeUnitCount":1,"maxImpressions":5},"partnerRevenueModel":{"markupType":"PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"},"conversionCounting":{"postViewCountPercentageMillis":"100000"},"bidStrategy":{"fixedBid":{"bidAmountMicros":"3610000"}},"integrationDetails":{}}]};
var data = JSON.parse(JSON.stringify(response));
var LiData = data["lineItems"];
var rows = [],
data;
for (i = 0; i < LiData.length; i++) {
data = LiData[i];
rows.push([
data.campaignId,
data.conversionCounting.floodlightActivityConfigs
]);
}
dataRange = sheet.getRange(2, 1, rows.length,2).setValues(rows);
}
发布于 2020-06-18 22:54:38
我相信你的目标如下。
{ "1fI": "72217193", "3PCdays": 30, "2PVdays": 30 },,,的对象放到一个单元格中。为了这个,这个修改怎么样?
修改点:
data.conversionCounting.floodlightActivityConfigs是一个数组。为了把这个放到一个单元格中,请使用JSON.stringify。我认为你的问题是这个原因。当这反映到您的脚本,请修改如下。
修改脚本:
发自:
rows.push([
data.campaignId,
data.conversionCounting.floodlightActivityConfigs
]);至:
rows.push([
data.campaignId,
JSON.stringify(data.conversionCounting.floodlightActivityConfigs)
]);参考资料:
关于附加问题的答复:
{ "1fI": "72217193", "3PCdays": 30, "2PVdays": 30 }到{ "1fI": "72217193", "2PVdays": 30,"3PCdays": 30... }对密钥进行排序。不幸的是,JSON对象没有得到订单的保证。例如,这条线对于理解它很有用。
但是,在您的示例中,您希望将对象作为字符串放到单元格中。我认为这可以用来解决你的额外问题。因此,作为一种解决办法,当{ "1fI": "72217193", "3PCdays": 30, "2PVdays": 30 }不被用作JSON对象时,我认为可以设置顺序。
修改脚本:
发自:
rows.push([
data.campaignId,
data.conversionCounting.floodlightActivityConfigs
]);至:
rows.push([
data.campaignId,
data.conversionCounting.floodlightActivityConfigs ? `[${data.conversionCounting.floodlightActivityConfigs.map(e => `{${Object.entries(e).map(([k, v]) => typeof v == "number" ? `"${k}":${v}` : `"${k}":"${v}"`).sort().join(",")}}`).join(",")}]` : ""
]);https://stackoverflow.com/questions/62460401
复制相似问题