【问题标题】:JSON in Google Apps ScriptGoogle Apps 脚本中的 JSON
【发布时间】:2013-04-01 20:21:34
【问题描述】:

我正在尝试使用谷歌应用脚​​本通过 Podio (https://developers.podio.com/doc/hooks/validate-hook-verificated-215241) 验证 webhook。

目前我有以下脚本成功地将数据写入文档(激活 Podio Post 后):

function doPost(l) {
  var doc = DocumentApp.openById('1to3-JzhE27-LK0Zw7hEsdYgiSd7xQq7jjp13m6YwRh0');
  var jstring = Utilities.jsonStringify(l);
  doc.appendParagraph(jstring);
}

数据如下:

{"queryString":null,"parameter":{"hook_id":"38035","code":"a92e06a2","type":"hook.verify"},"contextPath":"","parameters":{"hook_id":["38035"],"code":["a92e06a2"],"type":["hook.verify"]},"contentLength":44}

出于某种原因,谷歌应用程序脚本不允许我获取这些数据并访问如下属性:

jstring.parameter.code;

如果我将(看似)JSON 字符串复制到新变量下的单独脚本中,我就可以访问 JSON 中的数据。

我在这里做错了什么?

【问题讨论】:

  • JSON 是一个字符串。 JavaScript 对象是对象。您是否尝试将 JSON 用作对象而不首先对其进行解析?

标签: javascript google-apps-script podio


【解决方案1】:

看起来您有一个 JavaScript 对象,您可以将其转换为 JSON 字符串 jstring。它只是一个字符串。如果要访问字符串中表示的属性,请使用原始对象l。即l.parameter.code

function doPost(l) {
  var doc = DocumentApp.openById('1to3-JzhE27-LK0Zw7hEsdYgiSd7xQq7jjp13m6YwRh0');
  var jstring = Utilities.jsonStringify(l);
  doc.appendParagraph(jstring);
  dosomething(l.parameter.code);
}

【讨论】:

  • 谢谢 Gilly,我收到一个错误,表明我的类型仍然很时髦。 codeTypeError:无法从未定义中读取属性“参数”。 (第 10 行,文件“代码”)code
  • 实际上,这行得通!编辑器正在踢一个错误,因为从它的角度来看,该属性确实是未定义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多