【问题标题】:API JSON data import Google Sheets (JS)API JSON 数据导入 Google Sheets (JS)
【发布时间】:2021-09-06 08:45:49
【问题描述】:

请帮我弄清楚。 卸载数据时,整个数组写入一个单元格,如何将数据拆分为单元格和列?

enter image description here

function pullJSON() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  var options = {
    method: "GET",
   "headers" : {
      "Client-Id": "XXX",
      "Api-Key": "XXX-XXX-XXX-XXX-XXX",
      "Content-Type": "application/json"
   },
   body: {
    "Content-Type": "application/json",
    'muteHttpExceptions': true,
   // 'payload' : JSON.stringify({
   //  attribute_type: "REQUIRED",
   //  category_id: 17031211,
   // })
   }
  }

var url="https://api-seller.ozon.ru/v1/categories/tree"; // Paste your JSON URL here
  var response = UrlFetchApp.fetch(url, options); // get feed
  var dataAll = JSON.parse(response.getContentText());

  
  var rows = [Object.keys(dataAll)]; // Get headers.
  var temp = [];
  for (var i = 0; i < rows[0].length; i++) {
    temp.push(dataAll[rows[0][i]]); // Get values.
  }
  rows.push(temp);
  sheet.getRange(1,1,rows.length,rows[0].length).setValues(rows); // Put values to Spreadsheet.
}

【问题讨论】:

    标签: javascript json google-apps-script google-sheets


    【解决方案1】:

    试试下面:

    var tR = dataAll.ActualObjectName.length;    
    
    var array = [];
          for (var i = 0; i< tR; i++){
            var newJson = Object.keys(dataAll.ActualObjectName[i]).map(function (key) { 
              return [i, key, dataAll.ActualObjectName[i][key]];//change with actual object name  
              
            }); 
            for(var j = 0; j< newJson.length; j++){
              
              array.push(newJson[j]);
              
              }
              
            }
        
          sheet.getRange("A1:D49000").clearContent();//change actual range  
          var range = sheet.getRange(1,2, array.length, array[0].length);
          range.setValues(array);
    

    注意:您可以通过console.log(dataAll) 获取ActualObjectName 并检查标头对象名称

    【讨论】:

    • 我插入了你的代码,在控制台打印了一个对象数组,结果出现错误:TypeError: Cannot read property 'length' of undefined
    • 这里是显示在控制台上的对象数组 { category_id: 17027490, title: 'Антиквариат и коллекционирование', children: [Object] }, { category_id: 17027495, title: 'Автотовары' , 孩子: [对象] }, { category_id: 17027496, 标题: 'Продукты питания', 孩子: [对象] } ] }
    • 表示这一行有错误---->>>> var tR = dataAll.ActualObjectName.length;
    • { category_id: 17027490'之前一定有东西,控制台以] }结尾,而没有开数组[
    • 这里是数组的开头 { result: [ { category_id: 29, title: 'Печатные издания', children: [Object] }, { category_id: 99999999, title: 'Продукт медиа',孩子:[对象] },{ category_id:52265716,标题:'Аптека',孩子:[对象]},
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2017-09-25
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多