【发布时间】:2010-10-01 20:56:47
【问题描述】:
有没有办法使用 lift-json 库的 JObject 类来像地图一样工作?
例如:
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>
我本来希望 record("foo") 返回 "bar"
我注意到一个 values 函数,它打印出一个 Map 但实际对象是 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 类型的record.Values 不带参数 记录值(“富”)
有一些使用 lift-json 库提取案例类的示例,但在这种情况下,我事先并不知道 json 架构。
【问题讨论】:
-
这是在案例类stackoverflow.com/questions/5051290/…中解析 Map 作为参数的相关答案