我必须提取下一个网址的参数:
http://www.espn.com/college-football/story/_/id/24701796/college-football-bowl-projections-week-3
类似:
[联盟名称:大学橄榄球,id:24701796]。我有下一个实现:
def parseUrlStringToMap2(URI uri) {
def mapResult
if (uri.query) {
mapResult = uri.query.split('&')*.split("=").inject([:].withDefault { [] }) { m, v ->
m[v[0]] << v[1]
m
}.collectEntries { k, v -> v.size() == 1 ? [k, v[0]] : [k, v] }
} else {
// I'm going to assume that key/values come after '_' paths
def paths = uri.path.split('/')
mapResult = paths[paths.findIndexValues { it == '_' }.collect { (it+1)..(it+2) }].collate(2).collectEntries()
}
return mapResult
}
我得到了下一个答案:[id:24701796],没有联赛名称,我试图为LeagueName使用子字符串,有人知道更复杂的方法吗?
谢谢。