Есть ли способ использовать класс JObject библиотеки lift-json, чтобы он действовал как Map?
Например:
val json = """
{ "_id" : { "$oid" : "4ca63596ae65a71dd376938e"} , "foo" : "bar" , "size" : 5}
"""
val record = JsonParser.parse(json)
record: net.liftweb.json.JsonAST.JValue = JObject(List(JField(_id,JObject(List(JField($oid,JString(4ca63596ae65a71dd376938e))))), JField(foo,JString(bar)), JField(size,JInt(5))))
</code>
Я ожидал, что запись (" foo ") вернет "bar"
Я заметил функцию значений, которая распечатывает карту, но фактическим объектом является JValue.this.Values?
scala> record.values
res43: record.Values = Map ((_ id, Map ($ oid -> 4ca63596ae65a71dd376938e)), (foo, bar), (size, 5))
scala> record.values ("foo") : 12: ошибка: запись. Значения типа запись. Значения не принимают параметры record.values ("foo")
Есть примеры с библиотекой lift-json, извлекающей класс case, но в этом случае я заранее не знаю схему json.