使用lift-json将Json值提取为Map

时间:2011-04-06 18:31:23

标签: json scala deserialization

lift-json的文档表明我应该能够调用'values'来将我当前的JObject结构作为一个vanilla Scala Map。这种方法对我不起作用,因为'values'的返回类型是json.Values而不是Map,如示例所示。我究竟做错了什么?是否需要隐式导入才能完成此转换?

scala> val json = parse("""{"k1":"v1","k2":"v2"}""")         
json: net.liftweb.json.package.JValue = JObject(List(JField(k1,JString(v1)), JField(k2,JString(v2))))

scala> json.values                                  
res4: json.Values = Map((k1,v1), (k2,v2))

scala> res4.get("k1")                                        
<console>:18: error: value get is not a member of json.Values
   res4.get("k1")

1 个答案:

答案 0 :(得分:7)

不知怎的,我在搜索中错过了这个副本: Can I use the Scala lift-json library to parse a JSON into a Map?

答案是明确施展:

json.asInstanceOf[JObject].values