J'ai une chaîne commeLa meilleure façon de coder ce, chaîne à la carte de conversion en Groovy
def data = "session=234567893egshdjchasd&userId=12345673456&timeOut=1800000"
Je veux le convertir en une carte
["session", 234567893egshdjchasd]
["userId", 12345673456]
["timeout", 1800000]
Ceci est la façon actuelle que je fais il,
def map = [:]
data.splitEachLine("&"){
it.each{ x ->
def object = x.split("=")
map.put(object[0], object[1])
}
}
Cela fonctionne, mais y at-il un moyen plus efficace?
+1 pour l'utilisation de méthodes GDK (injection) et de phrases fantaisie anglaises (parcimonie syntactique) –
vous pouvez changer l'injection innards à token.split ('='). avec {map << [(it [0]): it [1]]} si vous_realement_désistez la lisibilité ;-) –
J'ai aimé cette solution - jusqu'à ce que je trouve qu'il y a une fonction "collectEntries()" qui peut être utilisée pour construire des cartes. C'est beaucoup plus lisible que le "injecter()", voir ma réponse ci-dessous. –