Лист JSON в Google -> Странные столбцы + Все в одной ячейке - PullRequest
1 голос
/ 05 ноября 2019

Пока мне удалось получить соединение с безопасным JSON. То, что я не получаю, - это хорошие данные в столбцах. Плюс в метаданных есть хорошие "метки", но теперь я получаю странные имена столбцов. Дата: Название улицы, например.

Я попробовал пару вопросов на этом сайте. но я не заставляю его работать.

Это мои данные JSON (извините, они на голландском языке) (как вы можете видеть Project: Zipcode ....?):

    {
      "skip": 0,
      "take": 100,
      "rows": [
{
  "Volgnummer": 1,
  "Omschrijving": "Projectnaam",
  "Omschrijving_2": "Productnaam",
  "Trailercodering": "productnaam-01",
  "Omschrijving_3": "Warehouse",
  "Datum_laden": "3 juni 2019",
  "Tijdstip_laden": "1600 - 1800",
  "Datum_aankomst_lossen": "4 juni 2019",
  "Tijdstip_lossen": "0800 - 1000",
  "Naam": "Transporteur",
  "Datum": "Straat"
  "Herkomst": huisnummer,
  "Navigatie_transport": null,
  "Project": "6644 KX",
  "Woonplaats": "Ewijk",
  "Land": "Nederland"
        },

И это пока мой код Google-Script:

    function pullJSON1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  var sheet = ss.getActiveSheet();
  var url= "https://the-url.com");
  var headers = {

        "Authorization": "AfasToken "+ 
Utilities.base64Encode(<token><version>1</version><data> hier de 
token</data></token>)
    };

    var options = {
        "method" : "get",
        "headers" : headers 
    };

  var response = UrlFetchApp.fetch(url,options); // get feed
  var dataAll = JSON.parse(response.getContentText());

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

вывод листа sheet output
(источник: imggmi.com )

Может кто-нибудь помочь?

Я бы это переставил в столбцы. Кроме того, мой вывод в листе дает мне 1 запись, но в общей сложности 356 записей.

Большое спасибо, Ремко

1 Ответ

0 голосов
/ 06 ноября 2019

Вам нужны переменные "skip", "take"? Они не соответствуют табличным данным, плюс они, кажется, являются частью системы нумерации страниц (в этом случае вам, вероятно, следует скрыть это от результатов). Ниже я предоставляю код для размещения фактических строк на вашем листе:

function pullJSON1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  var sheet = ss.getActiveSheet();
  var url = "https://the-url.com";
  var headers = {
    "Authorization": "AfasToken " + Utilities.base64Encode("<token><version>1</version><data> hier de token</data></token>");
  };

  var options = {
    "method" : "get",
    "headers" : headers 
  };

  var response = UrlFetchApp.fetch(url, options); // get feed
  var dataAll = JSON.parse(response.getContentText());
  var dataRows = dataAll['rows'];

  var rowHeaders = Object.keys(dataRows[0]);
  var rows = [rowHeaders]; // Retrieve headers.
  for (var i = 0; i < dataRows.length; i++) {
    var rowData = [];
    for (var j = 0; j < rowHeaders.length; j++) {
      rowData.push(dataRows[i][rowHeaders[j]]); // Retrieve values.
    }
    rows.push(rowData);
  }

  sheet.getRange(1,1,rows.length,rows[0].length).setValues(rows); 
  // Put values to Spreadsheet.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...