Сценарий Google Apps JSON.Parse, вызывающий «не удалось подключиться к серверу» при отладке

Я ни в коем случае не являюсь тем, кого я бы назвал «разработчиком», но немного балуюсь. Я работаю над кодом скрипта приложений для запроса API и отправки результатов в SQL. У меня работает большинство битов, но я заметил, что во время отладки в редакторе сценариев приложений, когда я перехожу к следующей строке кода, редактор выдает вверху сообщение «не удалось подключиться к серверу».


    var response = UrlFetchApp.fetch(clientApiURL,options);
    var resultSet = JSON.parse(response.getContentText());  <-- this is the line that is crashing the IDE

Кто-нибудь знает, как лучше отладить это? Когда я не отлаживаю его, кажется, что код ведет себя и работает правильно. Но с этим API не все объекты форматируются одинаково, поэтому мне нравится использовать отладчик для их проверки. Я могу сделать это, когда редактор падает.

Любая помощь/понимание будет супер оценена. Я также вставил ниже значение response.getContentText()


    {"result":{"lead":[{"id":"332","accountID":null,"ownerID":null,"companyName":"","title":null,"firstName":"RYAN","lastName":"CAVANAUGH","street":null,"city":null,"country":null,"state":null,"zipcode":null,"emailAddress":"[email protected]","website":null,"phoneNumber":null,"officePhoneNumber":null,"phoneNumberExtension":null,"mobilePhoneNumber":null,"faxNumber":null,"description":null,"campaignID":"789934082","trackingID":"202003_5e6fa18a87853a69eb306910","industry":null,"active":"1","isQualified":"1","isContact":"1","isCustomer":"1","status":"4","updateTimestamp":"2020-05-08 20:24:48","createTimestamp":"2020-05-03 20:23:29","leadScoreWeighted":"23","leadScore":"26","isUnsubscribed":"0","leadStatus":"customer","persona":"","product_5e554b933fb5b":""}]},"error":null,"id":"5222020","callCount":"215","queryLimit":"50000"}

Это воспроизведет ошибку:

function test(){
 var obj={"result":{"lead":[{"id":"332","accountID":null,"ownerID":null,"companyName":"","title":null,"firstName":"RYAN","lastName":"CAVANAUGH","street":null,"city":null,"country":null,"state":null,"zipcode":null,"emailAddress":"[email protected]","website":null,"phoneNumber":null,"officePhoneNumber":null,"phoneNumberExtension":null,"mobilePhoneNumber":null,"faxNumber":null,"description":null,"campaignID":"789934082","trackingID":"202003_5e6fa18a87853a69eb306910","industry":null,"active":"1","isQualified":"1","isContact":"1","isCustomer":"1","status":"4","updateTimestamp":"2020-05-08 20:24:48","createTimestamp":"2020-05-03 20:23:29","leadScoreWeighted":"23","leadScore":"26","isUnsubscribed":"0","leadStatus":"customer","persona":"","product_5e554b933fb5b":""}]},"error":null,"id":"5222020","callCount":"215","queryLimit":"50000"} 
 var resultSet = JSON.parse(obj);
}

person Jeff Bell    schedule 22.05.2020    source источник
comment
Вы используете среду выполнения V8 или Rhino?   -  person Amit Agarwal    schedule 22.05.2020
comment
Я получаю это сообщение в верхней части браузера: Этот проект работает в нашей новой среде выполнения Apps Script на базе Chrome V8.   -  person Jeff Bell    schedule 22.05.2020
comment
Предоставьте минимальный воспроизводимый пример   -  person Cooper    schedule 22.05.2020
comment
Вы когда-нибудь пытались отобразить текст ответа в текстовом поле диалогового окна?   -  person Cooper    schedule 22.05.2020
comment
@cooper вот что воспроизведет ошибку   -  person Jeff Bell    schedule 22.05.2020


Ответы (1)


Взглянем на проблему:

function test(){
 var obj={"result":{"lead":[{"id":"332","accountID":null,"ownerID":null,"companyName":"","title":null,"firstName":"RYAN","lastName":"CAVANAUGH","street":null,"city":null,"country":null,"state":null,"zipcode":null,"emailAddress":"[email protected]","website":null,"phoneNumber":null,"officePhoneNumber":null,"phoneNumberExtension":null,"mobilePhoneNumber":null,"faxNumber":null,"description":null,"campaignID":"789934082","trackingID":"202003_5e6fa18a87853a69eb306910","industry":null,"active":"1","isQualified":"1","isContact":"1","isCustomer":"1","status":"4","updateTimestamp":"2020-05-08 20:24:48","createTimestamp":"2020-05-03 20:23:29","leadScoreWeighted":"23","leadScore":"26","isUnsubscribed":"0","leadStatus":"customer","persona":"","product_5e554b933fb5b":""}]},"error":null,"id":"5222020","callCount":"215","queryLimit":"50000"} 
 var resultSet = JSON.parse(JSON.stringify(obj));
}

но в чем смысл синтаксического анализа, чтобы вернуть объект из строки, а не из объекта.

Но я вижу проблему. «Не удается подключиться к серверу»

Я обнаружил, что это, похоже, работает:

function test(){
 var obj='{"result":{"lead":[{"id":"332","accountID":"","ownerID":"","companyName":"","title":"","firstName":"RYAN","lastName":"CAVANAUGH","street":"","city":"","country":"","state":"","zipcode":"","emailAddress":"[email protected]","website":"","phoneNumber":"","officePhoneNumber":"","phoneNumberExtension":"","mobilePhoneNumber":"","faxNumber":"","description":"","campaignID":"789934082","trackingID":"202003_5e6fa18a87853a69eb306910","industry":"","active":"1","isQualified":"1","isContact":"1","isCustomer":"1","status":"4","updateTimestamp":"2020-05-08 20:24:48","createTimestamp":"2020-05-03 20:23:29","leadScoreWeighted":"23","leadScore":"26","isUnsubscribed":"0","leadStatus":"customer","persona":"","product_5e554b933fb5b":""}]},"error":"","id":"5222020","callCount":"215","queryLimit":"50000"}'; 
 var resultSet = JSON.parse(obj);
 var end="is near";//I just put this here to have a place to stop with debugger running
}

Я заменил все null на "".

person Cooper    schedule 22.05.2020
comment
Хотя это исправит ситуацию, мое воспроизведение не было точным. Производственный код выполняет JSON.parse для contentText ответа API. Что, если я правильно понимаю, на самом деле возвращает строку. - person Jeff Bell; 22.05.2020
comment
Нет, я вижу ошибку всякий раз, когда пытаюсь ее отладить. - person Cooper; 22.05.2020
comment
Думаю, я не все понимаю в JSON, почему бы вам не добавить тег javascript в свой список тегов. Я считаю, что люди, которые болтаются вокруг этого тега, как правило, много знают о таких вещах. - person Cooper; 22.05.2020
comment
Я также должен уточнить, что код будет выполняться при пошаговом выполнении. Только когда я захожу в панель инспектора и нажимаю [+], чтобы развернуть объект, я получаю эту ошибку. - person Jeff Bell; 22.05.2020
comment
Ха, интересно. Так что это как-то связано с этими нулевыми значениями. Возможно, инспектор отладки не знает, как с этим справиться? - person Jeff Bell; 22.05.2020