#web-services #google-apps-script #google-sheets
#веб-сервисы #google-apps-script #google-sheets
Вопрос:
Я вызываю веб-службу. Я получаю ответ, который при входе в регистратор совершенно разборчив. При вставке в электронную таблицу я получаю Ljava.lang.Объект;@ в ячейке. Что мне нужно сделать, чтобы данные в объекте отображались правильно?
function getRoomAvailability(){
...
var response = UrlFetchApp.fetch(url, headers);
var data = JSON.parse(response.getContentText());
Logger.log(response);
Logger.log(data);
ss.getSheetByName("Room").getRange(1,1,1,1).setValues([data]);
}
В журнале я вижу следующее:
[19-04-14 22:33:31:507 BST] [{"room_id":1,"room_availability":[{"date":"2019-04-20","available":"Yes"},{"date":"2019-04-21","available":"Yes"},{"date":"2019-04-22","available":"No"},{"date":"2019-04-23","available":"Yes"},{"date":"2019-04-24","available":"Yes"},{"date":"2019-04-25","available":"Yes"}]}]
[19-04-14 22:33:31:507 BST] [{room_id=1, room_availability=[{date=2019-04-20, available=Yes}, {date=2019-04-21, available=Yes}, {date=2019-04-22, available=No}, {date=2019-04-23, available=Yes}, {date=2019-04-24, available=Yes}, {date=2019-04-25, available=Yes}]}]
В электронной таблице я вижу
{room_id=1, room_availability=[Ljava.lang.Object;@676b6111}
Комментарии:
1. setValues принимает 2D-массив. Когда встречается другой массив внутри 2D-массива, он преобразуется в этот объект Java. Почему бы и нет
setValue(response)
?2. Спасибо мастеру. У меня есть около 1000 ответов (в
for
цикле), поэтому я помещал их в массив, чтобы избежать многократныхsetValue()
вызовов. Есть ли простой способ разделить массивы?3. Это другой вопрос. Было бы лучше задать новый вопрос.