#arrays #json #google-apps-script #google-sheets #return
#массивы #json #google-apps-script #google-sheets #Возврат
Вопрос:
Я довольно новичок, так что потерпите.
Я создаю Google script, который позволит мне вызывать TMDb API и получать некоторую информацию из списка фильмов, который я собираю для себя. Я пытаюсь автоматически заполнить все значения, просто используя идентификатор TMDB.
После некоторых усилий я обнаружил, что проще всего создать функцию для каждого столбца, который я хочу заполнить (название, дата, жанр, URL-адрес плаката и т. Д.) И Передать входные данные из ячейки в электронной таблице, чтобы иметь возможность извлекать информацию, А затем возвращать данные в эту ячейку.
Я не могу понять это, хотя, когда дело доходит до категории «жанр», потому что она находится в массиве.
Вот мой код, который работает для другого столбца:
function getPoster(input) {
var movieID = input
// Call the TMDB API for movie details
var response = UrlFetchApp.fetch("https://api.themoviedb.org/3/movie/" movieID "?api_key=<<mykey>>");
// Parse the JSON reply
var json = response.getContentText();
var data = JSON.parse(json);
return data["poster_path"];
}
Использование данных API:
«poster_path»:»/hXLScIERphkTsMGdfKKvF4p4SPB.jpg «,
Однако категория «жанр» перечисляет их как массив:
«жанры»: [{«id»: 28, «name»:»Действие»},{«id»:18, «name»: «Драма»},{«id»:53, «name»: «Триллер»}],
Как я могу написать возврат, чтобы он отправлял строку с показанными жанрами «Боевик, драма, триллер» в одну соответствующую ячейку (не перетекая в соседние ячейки), игнорируя при этом «идентификатор»?
Ответ №1:
вам нужно создать массив из значений genre
имен.
используйте этот фрагмент:
var genres = [{"id":28,"name":"Action"},{"id":18,"name":"Drama"},{"id":53,"name":"Thriller"}];
// Return "Action, Drama, Thriller" as a string into a single cell
return genres.map(function(genre){
return genre.name;
}).join(", ");
Пример вывода при печати: