2016-05-25 5 views
-1

Wie navigiere ich in einer Map [String, Any] in Scala?Navigieren in einer Karte [String, Any] in Scala

z.B .: map.get('key1,key2')

Welche Äquivalent map.get('key1').get('key2') sein wird.

Aber was ich tun möchte, ist 'key1,key2'.split(',') und navigieren Sie in der Karte.

Ist das möglich?

P.S .: Ich habe dies in Java gemacht, aber es ist wie if value instanceof Map in Map umgewandelt, erhalten Sie den neuen Wert und rekursiv rufen Sie die get mit verbleibenden Tokens.

+0

Ist das vielleicht ein json Eingang, die Sie in eine Karte analysiert haben [String, Irgendwelche]? Sie werden viel besser gedient sein, indem Sie diese Eingabe in eine Fallklasse analysieren und sich dann auf die Typsicherheit verlassen können. – Daenyth

+0

Nein, es ist kein JSON-Eingang. Was ich will ist das Äquivalent eines Ruby Hash – Driver

+0

* Aber was ich tun möchte, ist 'key1, key2'.split (', ') und navigieren Sie in der Karte. * Was bedeutet das? –

Antwort

1

Für das Protokoll, ich denke, das ist eine sehr falsche Sache zu tun, aber, wenn Sie darauf bestehen, hier gehen Sie:

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

Wie sonst kann ich es vom Benutzer konfigurierbar machen? – Driver

+0

Make _what_ "konfigurierbar"? – Dima

+0

Ich versuche eine Regel-Engine zu erstellen, wo diese Map mit Werten gefüllt wird, einschließlich verschachtelte Maps und der Benutzer implementiert die Regeln in json wie "FieldReference" -> anzuwendende Regeln – Driver

Verwandte Themen