Вызов API - ошибка: SyntaxError: неопределенный строковый литерал (строка 8, файл «Код» - Google Apps Script - PullRequest
0 голосов
/ 22 апреля 2020

Я получаю сообщение об ошибке "SyntaxError: неопределенный строковый литерал (строка 8, файл" Код "при использовании скрипта приложений Google, он работает нормально с другим API, но я не знаю, что с этим не так.

new code is :
`function Covid19_all() {

  // Call the COVID19 API
  var response = UrlFetchApp.fetch("https://api.covid19api.com/all");

  // Parse the JSON reply
  var json=response.getContentText();
  var data=JSON.parse(json);
  var sheet = SpreadsheetApp.getActiveSheet();

  for(var i=0;i<data.length;i++)
  { 
    sheet.getRange(i+2,1).setValue([data[i]['Country']]);
    sheet.getRange(i+2,2).setValue([data[i]['CountryCode']]);
    sheet.getRange(i+2,3).setValue([data[i]['Province']]);
    sheet.getRange(i+2,4).setValue([data[i]['City']]);
    sheet.getRange(i+2,5).setValue([data[i]['Lat']]);
    sheet.getRange(i+2,6).setValue([data[i]['Lon']]);
    sheet.getRange(i+2,7).setValue([data[i]['Confirmed']]);
    sheet.getRange(i+2,8).setValue([data[i]['Deaths']]);
    sheet.getRange(i+2,9).setValue([data[i]['Recovered']]);
    sheet.getRange(i+2,10).setValue([data[i]['Active']]);
    sheet.getRange(i+2,11).setValue([data[i]['Date']]);
  }

и ошибка: 'SyntaxError: Неожиданный конец ввода JSON (строка 8, файл "Код") "

1 Ответ

1 голос
/ 24 апреля 2020

Я много поиграл с этим, переключил его на v8 runtime и добавил в ваши настройки некоторые awaits / asyn c, но все равно получаю эту ошибку.

Затем я добавил в console.log(json.substring(json.length - 1000)); и он явно не получает полный ответ.

Я считаю, что он, вероятно, достигает максимальной квоты данных для запроса GET, дополнительную информацию можно найти здесь:

https://developers.google.com/apps-script/guides/services/quotas

Извините, что не смог поделиться решением.

Вот мой код, если вам интересно: - Я поиграл, убедившись, что не было пустых строк, и что нули действительно были строками, но это не проблема, очевидно.

async function Covid19_all() {
  var requestOptions = {
    method: 'GET',
    followRedirects: true
  };

  const response = await UrlFetchApp.fetch("https://api.covid19api.com/all", requestOptions)
  const text = await response.getContentText();
  const text2 = await text.toString();
  const text3 = text2.replace(/: 0/g, ': "0"').replace(/""/g, '"dummy"');
  console.log(text3.substring(text3.length - 1000));
  const json = await JSON.parse(text3);
  console.log(json);
}

Надеюсь, это было полезно.

Счастливого кодирования!

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