2017-03-05 17 views
0

私はGroovyのグルーヴィー - ネストされたマップ内の文字列の値の変更

Nested Map Groovy

に次のようなデータ構造を持っている私は、Groovyのは、このデータを反復処理するための簡単な方法(好ましくはワンライナー)を提供していますかどうかを知りたいです構造体には、 "code"のキーを持つTreeMapエントリを見つけ、その値にtrim()関数を適用します。あなたがイメージで見ることができるように、キー "コード"の値は "1880"です。それをトリミングして "1880"にしたいと思います。ありがとう。

答えて

0

私はこの1つを試してみましたが、それはあなたのデータのために働い:

ageTypes = ageTypes.collect { it.each { it.value = (it.value instanceof String) ? it.value.trim() : it.value } } 

UPD 私はそれが何らかの形で最適化することができると信じています。しかし、どのようにチェックする必要があります。

+0

アンオンのおかげで、ありがとう!このコードのように、私は後になっているものではないマップの値をすべてトリムします。あなたが気づくように、キーが "_links"である場合、その値はLazyMapであり、LazyMapをトリミングしようとすると例外が発生します。値をフィルタリングして文字列だけをトリミングする方法はありますか? – user1066568

+0

申し訳ありませんが、地図を忘れました。タイプチェックで答えを更新しました。少し長く見えます。何とか短縮できるかもしれない。 –

関連する問題