@Celery

Как распарсить JSON и записать в Таблицу?

Беру код методом GET API, дальше планирую его поставить в таблицу Google sheets.
Сейчас не могу разобраться, как распарсить и подготовить код, который смогу поставить в таблицу.

var content = response.getContentText();
console.log(content);

Ответ:
{ "context" : {
    "employee" : {
      "meta" : {
        .....
      }
    }
  },
  "meta" : {
    .....
  },
  "rows" : [ {
    "meta" : {
      .....
    },
    "id" : "00011f45-b668-11ec-1a80-03e4302c0e7b",
    "accountId" : "b8c1b725-6a22-11eb-1a80-01930506a260",
    "owner" : {
      "meta" : {
        .....
      }
    },
    "shared" : true,
    "group" : {
      "meta" : {
        .....
      }
    },
    "updated" : "2022-07-18 17:40:19.139",
    "name" : "Фланец Prosize 90мм",
    "description" : "Изделие подходит для использования в системах водоснабжения.",
    "code" : "t393",
    "externalCode" : "E5sJ0yRZiUPBwO5K7-55T0",
    "archived" : false,
    "pathName" : "Фитинги",
    "productFolder" : {
      "meta" : {
        .....
      }
    }, {
      Товар2
    }, {
      Товар3
    }, .....
}


Из этого кода мне нужны 2 поля: "code" и "name" от каждого товара, которые находятся в "rows".
Структура внутри rows [{Товар1}, {Товар2}...]
Дальше мне нужно эти данные записать в таблицу:
var ss = SpreadsheetApp.getActive(); //таблица
var list = ss.getSheetByName("API"); //лист
var range = list.getRange(1,1,1000,2); //диапазон
range.setValues(result);
  • Вопрос задан
  • 1476 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Вам необходимо сделать следующее

const content = response.getContentText();
const data = JSON.parse(content);


Далее, работать как с объектом, например

const values = data.rows.map(item => [item.name, item.code]);
sheet.getRange(1,1,values.length, values[0].length).setValues(values);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
Добавлял строчки вот так:
SpreadsheetApp
    .getActiveSpreadsheet()
    .appendRow([ <значение столбца 1>, <значение столбца 2>, <значение столбца 3>, ... ])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы