2017-10-04 3 views
0

Ceci est mon code.Accéder aux données cartographiques en utilisant groovy

def map = ['test.key.one': 'value1', 'test2.key2': 'value2'] 
def props = new Properties() 
props.putAll(map) 
println new ConfigSlurper().parse(props) //[test:[key:[one:value1]], test2:[key2:value2]] 
println(map['test2']) 

Résultat de println(map['test2']) est null mais je me attends [key2:value2]. Cloud tu m'aides s'il te plait?

+0

Pourriez-vous montrer vos données à la place de la carte? Parce que, je ne sais pas pourquoi vous utilisez 'ConfigSlurper' car les données sont déjà dans la carte, il est inutile de convertir en propriétés et ConfigSlurper. L'accès à la carte devrait être assez simple. – Rao

+0

'null' est le résultat correct car il n'y a pas de clé' test2'. – Rao

Répondre

1

Vous obtenez null lorsque vous accédez à map['test2'] parce que le code que vous nous témoignez ne modifie pas la variable map. Si vous vous attendez à voir

[key2: value2] 

après avoir accédé à test2 clé, vous devez attribuer des résultats

new ConfigSlurper().parse(props) 

à une valeur et accès test2 clé sur cette variable nouvellement créée, par exemple

def map = ['test.key.one': 'value1', 'test2.key2': 'value2'] 
def props = new Properties() 
props.putAll(map) 
def config = new ConfigSlurper().parse(props) 

assert config['test2'] == [key2: 'value2']