我尝试使用net.liftweb.util.JSONParser解析JSON字符串。这是parse()方法返回一个框,我想通过模式匹配这样的处理[任意值:使用模式匹配net.liftweb.util.JSONParser.parse的结果
JSONParser.parse("{foo: 'xxx', bar: 'yyy'}") match {
case Full(Map) => println("ok")
case x => println(x)
}
我预计这段代码打印“OK”,而是它打印
Full(Map(foo -> xxx, bar -> yyy))
有没有人有一个想法我的声明有什么问题?
这不起作用,因为JSONParser.parse()返回一个Box [Any]。如果该Box不是空的,它将包含一个Map。所以我必须以某种方式匹配完整(地图) - 不只是一个地图。 我的问题更多地涉及到与JSONParser匹配的模式。 我对JSON解析器没有任何要求,所以我可以通过使用另一个解析器来使其工作。 但我想了解模式匹配。我想知道为什么我的方法不起作用,我应该怎么做。 – Michael
已更新为工作代码,您刚刚从原始匹配中遗漏了[_,_]。 – fmpwizard