Как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Проблема и обходной путь:
Я думаю, что причина вашей проблемы в том, что 3669516009270899211
из "registrantKey":3669516009270899211
используется в качестве числа , В Javascript максимальное целое значение равно 9007199254740991
. Ref Таким образом, когда 3669516009270899211
преобразуется в число, оно становится 3.6695160092708992E18
, а когда оно преобразуется в строку, оно становится 3669516009270899000
.
Так что в этом случае, как один из нескольких обходных путей, как насчет заключения в 3669516009270899211
двойных кавычек, таких как "registrantKey":"3669516009270899211"
? Таким образом, "3669516009270899211"
используется в строке, и вы можете получить значение 3669516009270899211
.
Модифицированный скрипт:
Когда ваш скрипт изменяется, как насчет следующей модификации?
От:
var resp = UrlFetchApp.fetch(url,options)
var json=JSON.parse(resp);
return json
До:
var resp = UrlFetchApp.fetch(url,options);
resp = resp.getContentText().replace(/registrantKey":(\d.+),/, "registrantKey\":\"$1\","); // Added
var json=JSON.parse(resp);
return json
Примечание:
В качестве тестового сценария вы также можете использовать следующий сценарий.
var str = '{"joinUrl":"https://example.com","asset":true,"registrantKey":3669516009270899211,"status":"APPROVED"}';
str = str.replace(/registrantKey":(\d.+),/, "registrantKey\":\"$1\",");
var obj = JSON.parse(str);
Logger.log(obj)
Ссылка:
Если я неправильно понял ваш вопрос, и это не то направление, которое вам нужно Прошу прощения.