我尝试使用net.liftweb.util.JSONParser解析JSON字符串。它的parse()方法返回一个Box [Any]值,我想通过这样的模式匹配来处理它:
JSONParser.parse("{foo: 'xxx', bar: 'yyy'}") match {
case Full(Map) => println("ok")
case x => println(x)
}
我希望这段代码能打印“ok”,而是打印
Full(Map(foo -> xxx, bar -> yyy))
有没有人知道我的陈述有什么问题?
答案 0 :(得分:2)
Full(Map)
表示包含单身Full
的{{1}}。如果你希望object Map
里面有一个Map(对象Map不是一个),它应该是Full
(你可以使用Full(m: Map)
而不是_
不需要访问该地图)
答案 1 :(得分:1)
更新:
scala> import net.liftweb.util._
import net.liftweb.util._
scala> import net.liftweb.common.Full
import net.liftweb.common.Full
scala> JSONParser.parse("{foo: 'xxx', bar: 'yyy'}") match {
| case Full(m: Map[_, _]) => println("ok")
| case x => println(x)
| }
ok
scala>
(我忘记了地图[,]
周围的Full()我不知道你的要求,但是Lift还有另一个json库,它比JSONParser更强大,它被称为lift-json