要从这种结构中获取标记名称列表,可以使用Groovy的扩展操作符:
def tags = response*.name
可以简化为:
def tags = response.name
这相当于:
def tags = response.collect { it.name }
现在,如果你希望这个列表按
commit.created_at
钥匙,你可以打电话
.sort {}
使用扩展运算符之前的方法,例如。
def tags = response.sort { it.commit.created_at }.name
它将按升序对名称列表进行排序。如果您对降序感兴趣,则可以否定排序方法的主体:
def tags = response.sort { !it.commit.created_at }.name
下面是一个完整的示例:
import groovy.json.JsonSlurper
def json = "https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-ce/repository/tags".toURL().text
def response = new JsonSlurper().parseText(json)
def tags = response.sort { it.commit.created_at }.name
println tags
输出:
[v10.7.0, v10.8.0.pre, v10.7.1, v10.5.8, v10.6.5, v10.7.2, v10.8.0-rc1, v10.7.3, v10.8.0-rc2, v10.8.0-rc3, v10.8.0-rc4, v10.8.0-rc6, v10.8.0-rc5, v10.8.0-rc7, v10.8.0-rc8, v10.8.0-rc9, v10.8.0-rc10, v10.8.0-rc11, v10.8.0-rc12, v10.8.0-rc13]
希望有帮助。