Как мне написать какой-нибудь отличный скрипт для возврата массива имен (name
), отсортированных по ключу created_at
, вложенному в ключ commit
?
Используя это в качестве образца данных:
[
{"name":"v10.8.0-rc13",
"message":"Version v10.8.0-rc13",
"target":"171b50a40984c358a07c7e37ee95f8d788718198",
"commit":
{
"id":"1b3911c3cc8e72cc93370a90a597e2a0b944bcc2",
"short_id":"1b3911c3",
"title":"Update VERSION to 10.8.0-rc13",
"created_at":"2018-05-18T12:43:58.000+01:00", <------ I WANT TO SORT BY THIS
"parent_ids":["a7090d00098a4acc03cfc2b01df8019c918bd0bc"],
"message":"Update VERSION to 10.8.0-rc13\n",
"author_name":"Filipa Lacerda",
"author_email":"[email protected]",
"authored_date":"2018-05-18T12:43:58.000+01:00",
"committer_name":"Filipa Lacerda",
"committer_email":"[email protected]",
"committed_date":"2018-05-18T12:43:58.000+01:00"
},
"release":null
},
.
.
.
]
Пока что я использую что-то вроде этого, чтобы получить список несортированных имен:
List<String> tags= new ArrayList<String>()
def url="curl -X GET http://blah_blah"
def payload = url.execute().text
def slurper = new JsonSlurper()
def response = slurper.parseText(payload)
for(item in response)
{
tags.add(item.name)
}
println(tags)
В этом случае response
имеет тип java.util.ArrayList
а response[0]
относится к типу groovy.json.internal.LazyMap
Все примеры, которые я нашел до сих пор, используют методы .sort
или .SortBy
, которые не работают на LazyMap
. **ОБНОВЛЕНИЕ** Я не думаю, что это верно утверждение.