2016-05-25 7 views
-1

ScalaのMap [String、Any]をナビゲートするには?ScalaのMap [String、Any]をナビゲート

例えば:map.get('key1').get('key2')と同等になりますmap.get('key1,key2')

しかし、私がしたいのは'key1,key2'.split(',')で、地図内をナビゲートします。

これは可能ですか?

P.S.私はこれをJavaで作成しましたが、if value instanceof Mapのようにマップにキャストして、新しい値を取得し、残りのトークンでgetを再帰的に呼び出します。レコードの

+0

が、これはおそらくあなたが地図に解析されてきたJSON入力です[String、Any]?あなたは、その入力をケースクラスに解析し、型の安全性に頼ることができます。 – Daenyth

+0

いいえ、Json入力ではありません。私が欲しいのは、Rubyハッシュの同等物です – Driver

+0

*しかし、私がしたいのは、 'key1、key2'.split('、 ')であり、マップ内をナビゲートすることです。 –

答えて

1

は、私は、これを行うには非常に間違ったことだと思います、しかし、あなたはここで、主張すればあなたが行く:

implicit def toMap(m: Any) = m.asInstanceOf[Map[String, Any]] 
    Map[String,Any]("foo" -> Map("bar" -> Map("baz" -> 3)))("foo")("bar")("baz") 
    res15: Any = 3 
+0

それ以外はどうすればユーザーが設定できるのですか? – Driver

+0

_what_を「設定可能」にしますか? – Dima

+0

私はそのマップがネストされたマップを含む値でいっぱいになるルールエンジンを構築しようとしています。ユーザーは "FieldReference"のようなjsonでルールを実装します - >適用するルール – Driver

関連する問題