Попытка получить данные JSON и поместить их в Google - PullRequest
0 голосов
/ 11 июня 2019

У меня проблема с настройкой значения в googlesheet. Googlesheet setValue поддерживает только массив, но мне нужно поместить объект в строки.

Я пытался использовать appendRow, но он не будет работать в пользовательских функциях. Я также попробовал setValue с преобразованием моих объектов в массив, но затем пропустил некоторые данные.

Это моя функция извлечения. Он работает и получает все данные, которые мне нужны, но мне очень трудно поместить их в googlesheet.





function importTrelloJSON(url){
  var response = UrlFetchApp.fetch(url);
  var content = response.getContentText();
  var data = JSON.parse(content);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();


  var trelloJSON = data.map(function(el, index) {
      var customFieldItems = el.customFieldItems.map(function(el){
        return [el.idCustomField, el.value.number];
      });

     return  { name: el.name, customFieldItems: customFieldItems };
   });

  retrun trelloJSON;
}


and this is my JSON structure, sometimes there is nested data


[
{
"id": "5ce26ef1d5bdac4ec20e8982",
"name": "WWW",
"customFieldItems": []
},
{
"id": "5ced04d96ec7ed6120b5e91d",
"name": "Marketing",
"customFieldItems": []
},
{
"id": "5cfed3d8e88f931008aa58ad",
"name": "Reset softu Android",
"customFieldItems": [
{
"id": "5cfed4145d019516555a9086",
"value": {
"number": "100"
},
"idCustomField": "5ced79c27bbd7102945ba1ff",
"idModel": "5cfed3d8e88f931008aa58ad",
"modelType": "card"
}
]
},

Я пытался использовать готовую функцию importJSON https://github.com/bradjasper/ImportJSON, но она не работает с моими запросами.

Спасибо за помощь.

// редактировать Теперь я могу отображать данные, но когда я нажимаю на массив, у меня проблемы с диапазоном. Количество столбцов данных не соответствует количеству столбцов в диапазоне. Я пробовал Math.max.apply (Math, trelloJSON.map (function (el) {return el.length})). Но это больше не работает.

Вот мой новый код:

function importTrelloJSON(url){
  var response = UrlFetchApp.fetch(url);
  var content = response.getContentText();
  var data = JSON.parse(content);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var mainArray = new Array();


  var trelloJSON = data.map(function(el, index) {
    mainArray = [];
    mainArray.push(el.name);

   el.customFieldItems.map(function(el){
        mainArray.push(el.idCustomField);
        mainArray.push(el.value.number);  
      });

    Logger.log(mainArray);

    return mainArray;
   });

  sheet.getRange(1,1, trelloJSON.length, Math.max.apply(Math, trelloJSON.map(function (el) { return el.length }))).setValues(trelloJSON);

}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...