¿Hay alguna manera de utilizar la clase JObject de la biblioteca lift-json para actuar como un Mapa?¿Puedo usar la biblioteca Scala lift-json para analizar un JSON en un mapa?
Por ejemplo:
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>
disco que yo hubiera esperado ("foo") para volver "barra"
me di cuenta de una función de los valores y se imprime un mapa, pero el objeto real es una JValue.this.Values?
scala> record.values res43: record.Values = Map((_id,Map($oid -> 4ca63596ae65a71dd376938e)), (foo,bar), (size,5))
scala> record.values("foo") :12: error: record.values of type record.Values does not take parameters record.values("foo")
Hay ejemplos con la biblioteca de elevación JSON extracción de una clase de caso, pero en este caso, no sé el esquema JSON con antelación.
Esta es una respuesta relacionada para analizar mapa como un parámetro en una clases de casos http://stackoverflow.com/questions/5051290/deserializing-case-classes-with-mapstring-any-properties-with-lift-json/6310493#6310493 –