使用与 net.liftweb.util.JSONParser.parse 结果的模式匹配

发布于 2024-12-02 16:51:22 字数 375 浏览 0 评论 0原文

我尝试使用 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))

有人知道我的语句有什么问题吗?

I try to parse a JSON string with the net.liftweb.util.JSONParser. It's parse() method returns a Box[Any] value which I want to process via pattern matching like this:

JSONParser.parse("{foo: 'xxx', bar: 'yyy'}") match {
        case Full(Map) => println("ok")
        case x => println(x)
}

I'd expect this code to print "ok" but instead it prints

 Full(Map(foo -> xxx, bar -> yyy))

Does anyone have an idea what's wrong with my statement?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扛刀软妹 2024-12-09 16:51:22

Full(Map) 表示包含单例对象 MapFull。如果你想要 Full 里面有一个 Map(对象 Map 不是一个),它应该是 Full(m: Map) (你可以使用 _ 而不是 m(如果您不需要访问该地图)

Full(Map) means a Full containing the singleton object Map. If you want Full with something inside that is a Map (the object Map is not one), it should be Full(m: Map) (you can use _ instead of m if you don't need access to that map)

柒夜笙歌凉 2024-12-09 16:51:22

更新:(

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> 

我忘记了Map周围的Full()[]

我不知道你的要求,但是Lift还有另一个比JSONParser更强大的json库,它被称为< a href="https://github.com/lift/framework/tree/master/core/json" rel="nofollow">lift-json

Updated:

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> 

(I had forgotten the Full() around the Map[,]

I don't know your requirements, but Lift also has a another json library which is more powerful than JSONParser, it is called lift-json

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文