【发布时间】:2016-12-07 21:48:57
【问题描述】:
我正在尝试更深入地挖掘嵌套的 Slack 有效负载,以获取我嵌入在原始消息中的一些“字段”。
我什至不确定这甚至是 JSON。Slack 否认他们甚至支持它。但我必须将它作为 JSON 处理?无论如何,也许有人可以阐明这一点。
无论如何..这是我深入研究有效负载的脚本:
function doPost(e) {
var payload = e.parameter.payload;
var json = JSON.parse(payload);
var attached = json["original_message"].attachments;
...
var attached 是:
{
color=7CD197, callback_id=123,
text=Invite *Hello* to this slack?, id=1,
fields=[Ljava.lang.Object;@710f54d9,
fallback=Something went wrong.. try again,
actions=[Ljava.lang.Object;@67e92a25
}
要访问fields 对象,我希望使用以下语法:
var field_value = attached.fields[0].value;
我认为这应该是正确的,因为我想检索fields 对象的第一个嵌套对象(可以有多个)。原始消息字段如下:
"fields": [
{
"title": "Name",
"value": invitation_name,
"short": true
},
{
"title": "Email",
"value": invitation_email,
"short": true
}
],
其中invitation_name 和invitation_email 是传递值。
因此,鉴于上述逻辑,我希望 var field_value = attached.fields[0].value; 返回 invitation_name.. 的传递值。但是我得到以下信息:
TypeError: Cannot read property "0" from undefined.
来自var payload = e.parameter.payload; 的原始传入有效负载确实包含fields 对象.. 但JSON.parse 将其转换为fields=[Ljava.lang.Object;@710f54d9,..
https://www.mkyong.com/javascript/how-to-access-json-object-in-javascript/
对如何深入到 json 文件提供了一个很好的概要,我已经习惯了很好的效果来获得我想要的一切.. 除了现在我无法在不生成 invalid 返回的情况下进一步挖掘..
【问题讨论】:
-
请更具体地说明您要做什么。这应该是传出 webhook 消息的附件吗? (顺便说一句,这当然是 JSON,正如 documentation 上明确说明的那样
标签: json google-apps-script slack-api