Я храню объект в свойствах скрипта, но он возвращается в виде строки - PullRequest
0 голосов
/ 03 мая 2019

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

  var myObject = {
    email: range[0][1],
    sitecode: range[0][2],
    x: range[0][3],
    x: range[0][4],
    x: range[0][5],
    region: range[0][6],
    x: range[0][7] 

  }

  var userProperties = PropertiesService.getUserProperties();
  userProperties.setProperty('globals', myObject);

пока все хорошо, тогда мы называем это

 var userProperties = PropertiesService.getUserProperties();
  var myObject = userProperties.getProperty('globals');
  Logger.log(myObject);
  Logger.log(userProperties.getKeys());
  Logger.log(myObject.region);
  Logger.log(myObject['region']);

но получите это

[19-05-02 13:59:22:626 PDT] {sitecode=TEST, x=x, x=x, x=x, region=North America, x=x, email=x}
[19-05-02 13:59:22:642 PDT] [globals]
[19-05-02 13:59:22:643 PDT] undefined
[19-05-02 13:59:22:643 PDT] undefined

Я бы хотел, чтобы последние две строки журнала возвращали "Северная Америка". Тот факт, что мне не говорят, что это строка, а не объект.

1 Ответ

2 голосов
/ 03 мая 2019

И PropertiesService, и CacheService хранят свои ключи и значения в виде строк, поэтому при попытке сохранить объект его строковое представление сохраняется.

Одним из решений является использование JSON.stringify() чтобы сначала сериализовать объект в виде строки JSON, а затем сохранить его, а при последующем извлечении объекта вы используете JSON.parse(), чтобы вернуть исходный объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...