2017-10-04 11 views
0

これは私のコードです。 println(map['test2'])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']) 

結果はnullですが、私は[key2:value2]を期待しています。あなたが私を助けてくださいクラウド?

+0

地図の代わりにデータを表示してもよろしいですか? 'ConfigSlurper'をなぜデータとして使用しているのかはまだ分かっていないので、プロパティとConfigSlurperに変換する必要はありません。地図へのアクセスは非常に簡単です。 – Rao

+0

'ヌル'は 'test2'キーがないので正しい結果です。 – Rao

答えて

1

map['test2']にアクセスすると、nullと表示されます。このコードでは、mapという変数が変更されていないためです。あなたがキーtest2にアクセスした後

[key2: value2] 

を見ることが予想される場合、あなたは値に

new ConfigSlurper().parse(props) 

の結果を割り当てる必要があり、その後、その新しく作成された変数にtest2キーにアクセスし、例えば

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'] 
関連する問題