解析 JSON 和选项[任何]



很抱歉,如果这个问题太简单了,我只是从 Scala 开始。

我试图在 Scala 中解析一些 JSON,但我在理解下面发生了什么时遇到了一些麻烦:

scala> import scala.util.parsing.json.JSON
scala> val x = JSON.parseFull("""{"name": "x",  "lang": "en"} """)
x: Option[Any] = Some(Map(name -> x, lang -> en))

现在,由于parseFull返回一个Option[Any],并且我知道它确实包含一个值,我可以写:

scala> x.get
res6: Any = Map(name -> x, lang -> en)

我该如何处理此结果?我想要的是直接访问键或值,做一些类似于 x.get("name") 的事情。

多谢!

因此,如果您使用的是纯 Scala 解析选项,您将获得一个可以转换回地图的 Any:

scala> x.get.asInstanceOf[Map[String,String]]
res6: Map[String,String] = Map(name -> x, lang -> en)
scala> x.get.asInstanceOf[Map[String,String]].get("lang")
res7: Option[String] = Some(en)
scala> x.get.asInstanceOf[Map[String,String]].get("lang").get
res8: String = en

这有点麻烦;有一些库强加了一个更干净的界面来处理一些转换,例如

  • 喷-JSON
  • 阿尔戈英雄
  • 播放-JSON

我相信其他人。

相关内容

最新更新