我想使用块布局格式将消息发送到我的Slack应用程序。我在PHP中创建了一个关联数组,然后使用json_encode()将其转换为JSON。问题是它没有转换为松弛所期望的JSON格式,并且出现错误“无效块格式”。这是我的代码,输出和松弛期望的输出。
properties([
[$class: 'RebuildSettings', autoRebuild: false, rebuildDisabled: false],
parameters([
[$class: 'LabelParameterDefinition',
allNodesMatchingLabel: false,
defaultValue: '',
description: '',
name: 'node',
nodeEligibility: [$class: 'AllNodeEligibility'], t
riggerIfResult: 'allCases']
]
)
])
我得到以下输出:
node(params.node){}
但是,Slack期望使用以下格式的JSON:
$data = array(
'blocks' => array(
'type' => 'mrkdwn',
'text' => 'Danny Torrence left the following review for your property'
),
);
$data = json_encode($data);
我只需要最后将一个'{'转换为'[',将一个'}'转换为']'。我将不胜感激。
谢谢
答案 0 :(得分:1)
我没有足够的声誉,但是我相信这是no square bracket json array
的副本此外,这不是有效的json,您可以检查https://jsonlint.com/?code=
{"blocks":["type":"mrkdwn","text":"Danny Torrence left the following review for your property"]}
总结一下帖子,您真正要做的就是用另一个数组包装内部数组
$data = array(
'blocks' => array(array(
'type' => 'mrkdwn',
'text' => 'Danny Torrence left the following review for your property'
)),
);
这将返回:
{"blocks":[{"type":"mrkdwn","text":"Danny Torrence left the following review for your property"}]}