Drive Batch API, возвращающий текстовый контент в дополнение к json-parsable материалу - PullRequest
2 голосов
/ 03 октября 2019

Мой пакетный процесс (создание некоторых папок) идет отлично, но ответ, который я получаю, не является чистым JSON, который я ожидал, но в нем есть заголовки простого текста с вкраплениями. Как мне избавиться от них или разобрать это правильно?

--batch__AAPXnCR1-5Q
Content-Type: application/http
Content-ID: response-1

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Wed, 02 Oct 2019 22:44:16 GMT
Expires: Wed, 02 Oct 2019 22:44:16 GMT
Cache-Control: private, max-age=0
Content-Length: 140

{
 "kind": "drive#file",
 "id": "1pznPt",
 "name": "SF1-B1",
 "mimeType": "application/vnd.google-apps.folder"
}

--batch_z3tbQ5Q

Мне просто нужно иметь возможность извлекать идентификаторы этих папок после их создания.

1 Ответ

2 голосов
/ 03 октября 2019

Как насчет этого ответа?

К сожалению, значение ответа не может быть проанализировано напрямую с помощью встроенной функции Google Apps Script и Javascript. Поэтому в моем случае я анализирую значение ответа, используя следующий скрипт. Я думаю, что есть несколько методов для этой ситуации. Поэтому, пожалуйста, подумайте об этом как об одном из нескольких ответов.

Пример сценария 1:

var response = UrlFetchApp.fetch(url, options).getContentText(); // Here, the batch request is run.

var temp = response.split("--batch");
var parsedValue = temp.slice(1, temp.length - 1).map(function(e){return JSON.parse(e.match(/{[\S\s]+}/g)[0])});

Пример сценария 2:

var response = UrlFetchApp.fetch(url, options).getContentText(); // Here, the batch request is run.

var parsedValue = response.match(/{[\s\S]+?}/g).map(function(e) {return JSON.parse(e)});

Если это не было направлениемВы хотите, я прошу прощения.

...