Могу ли я использовать библиотеку Scala lift-json чтобы преобразовать JSON в карту?

Есть ли способ использовать класс 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.

12
задан tommy chheng 1 October 2010 в 20:56
поделиться