我正在使用 slack api ( https://slack.com/api/search.messages
) 来获取 slack 频道中的帖子并使用 java 代码解析帖子。
以下是示例 slack 响应,其中 slack 帖子是 'matches' 下的 'text' 和 match - previous' :
{
"ok": true,
"query": "\"@DTR:JQL\" in:#sydtest-reporting",
"messages": {
"total": 16,
"matches": [
{
"iid": "370f1cc2-aef9-4681-93f1-fa3787ce9d17",
"team": "T9180DGJH",
"channel": {
"id": "C9UPLJ9D2",
"is_channel": true,
"name": "sydtest-reporting",
"teams": [
"T9180DGJH"
]
},
"type": "message",
"user": "W9G7PAUCF",
"username": "200848",
"ts": "1568962541.016200",
"text": "@DTR:JQL#SYDEPS AND labels = Nov_2019_CSS_Cycle1",
"previous": {
"type": "message",
"user": "WGGUL08NA",
"username": "208977",
"ts": "1568962184.015700",
"text": "@DTR:2019 November Release",
"iid": "4bdb76cf-015b-4b43-9608-013b56e47820",
},
以上响应已排序(“排序”、“时间戳”)。我正在使用 com.jayway.jsonpath.JsonPath 库中的 read() 来解析上面的 json 并使用以下 2 jsonPathExpression:
$.messages.matches[*].text
$.messages.matches[*].previous.text
目前我正在触发 2 个单独JsonPath.read(document, jsonPathExpression)
的调用(对上面的每个 jsonPathExpression 调用一个),然后创建一个组合列表,如下所示:
@DTR:JQL#SYDEPS AND labels = Nov_2019_CSS_Cycle1
@DTR:2019 November Release
... many more
这种方法的问题是,虽然每个读取操作都返回排序列表,但当我将两个列表结合起来时,排序是没有意义的。
我正在寻找的是,两个 jsonPathExpression 的单次读取操作。如果需要,我可以使用其他一些 json 库。请指导。