我想使用Scriptrunner for Jira Server(Java/Groovy)将降价表转换为json字符串。
该表存储在问题的描述字段中,当通过rest api/rest/api/2/issue显示问题时,该表的外观如下所示
"description": "|| ||Due Date||Done on||OK/NOK||Remarks||\r\n|*Task 1*| | | | |\r\n|*Task 2*| | | | |\r\n|*Task 3*| | | | |\r\n|*Task 4*| 15/03/23| | | See document X|"
为清楚起见,解释MD中的表格如下所示:
| | 到期日|完成日期|合格/不合格|备注|
| - ------|- ------|- ------|- ------|- ------|
| * * 任务1**| | | | |
| * * 任务2**| | | | |
| * * 任务3**| | | | |
| * * 任务4**|2023年3月15日| | |见文件X|
这将在以下Json中转换(每行一个块)
{
"ACTION": [{
"DONE ON": "",
"DUE DATE": "15/03/23",
"NOTE": "See document X",
"TITLE": "Task 4"
}
...
]
}
我已经计算出要使用的正则表达式:https://regex101.com/r/Ph5f0a/1
请注意,该表将始终是相同的,相同数量的行和列与此特定的格式。
问题是,当我显示问题描述的内容时,\r\n会被解释为换行符。
- 是否有办法将内容显示为单行"原始"字符串,以便我的正则表达式可以工作?**
下面是我现在使用的代码片段。
import com.atlassian.jira.component.ComponentAccessor
import java.io.IOException
import com.atlassian.jira.issue.Issue
import groovy.json.*
import org.apache.log4j.Level
import java.util.regex.Matcher;
import java.util.regex.Pattern;
log.setLevel(Level.INFO);
def issue = issueManager.getIssueObject('PTIJ-68')
def description_raw = issue.getDescription()
log.info("issue.getDescription() = ${issue.getDescription().toString()}")
谢谢。
1条答案
按热度按时间m1m5dgzv1#
一些带有CSV处理的简单正则表达式:
印刷品: