有沒有辦法使用lift-json庫的JObject類來像一個Map一樣?我可以使用Scala lift-json庫將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>
我本來期望的記錄(「富」)返回「巴」
我注意到一個值函數,它打印出地圖,但實際的對象是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")
有與升降JSON庫提取案例類的例子,但在這種情況下,我不知道提前JSON模式。
這是一個case類解析地圖作爲參數相關答案http://stackoverflow.com/questions/5051290/deserializing-case-classes-with-mapstring-any-properties-with-lift-json/6310493#6310493 – 2011-06-10 18:57:33