如果这个问题太简单,我很抱歉,我刚开始使用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))
Run Code Online (Sandbox Code Playgroud)
现在,因为parseFull返回一个Option [Any],并且我知道它确实包含一个值,我可以写:
scala> x.get
res6: Any = Map(name -> x, lang -> en)
Run Code Online (Sandbox Code Playgroud)
我如何处理这个任何结果?我想要的是直接访问键或值,执行类似于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
Run Code Online (Sandbox Code Playgroud)
这有点麻烦; 有一些库强加了一个更清晰的接口来处理一些转换,如
我相信别人.
| 归档时间: |
|
| 查看次数: |
1600 次 |
| 最近记录: |