在我的用例中我需要编写一个代理,我可以动态地构建一个jira问题,从发送到同一代理的请求中捕获数据。 在请求的有效负载中,有一个像这样的Json对象:
{"objId":"073456","user":"sysadmin","message":"asdas"}
从这个json我想构建这个jira“CreateIssue”语句:
<jira.createIssue>
<projectKey>MY PROJECT</projectKey>
<summary>Issue sent form user: USER related to object: OBJID </summary>
<description>MESSAGE</description>
<issueType>Bug</issueType>
</jira.createIssue>
从上面的json中选取USER,OBJID和MESSAGE。 我该怎么做?
答案 0 :(得分:1)
您可以使用属性介体从上面的json中拾取。
<property name="objId" expression="json-eval($.objId)"/>
<property name="user" expression="json-eval($.user)"/>
<property name="OBJID" expression="get-property('OBJID')"/>
<jira.createIssue>
<projectKey>MY PROJECT</projectKey>
<summary>Issue sent form user: {$ctx:user} related to object: {$ctx:objId} </summary>
<description>MESSAGE</description>
<issueType>Bug</issueType>
</jira.createIssue>
答案 1 :(得分:0)
您可以使用大括号指定动态值和xpath或JSON路径(使用&#34; json-eval&#34;)来操作消息有效负载,示例:
<summary>{concat('Issue sent form user: ', json-eval($.user), ' related to object: ', json-eval($.objId)}</summary>
<summary>{concat('Issue sent form user: ', //user/text(), ' related to object: ', //objId/text()}</summary>