我使用scala json解析得到以下结果。
import scala.util.parsing.json.JSON._
val j: String = """["this",["a","b",["c","d"]]]"""
val parse_test=parseFull(j)
现在从这里我得到Option [Any]的结果
我可以使用get
来获取结果(在这种情况下,我不关心无效的json格式,所以这应该是安全的,对吗?)
parse_test.get
res26: Any = List(this, List(a, b, List(c, d)))
现在,我应该如何从Any
转到我预期的List
?我假设我应该使用模式匹配,但我无法弄清楚。任何帮助将不胜感激
答案 0 :(得分:0)
你可以做的是带有模式匹配和演员阵容的折叠:
test_result.fold[List[String]](Nil){
case _ :: list :: _ => list.asInstanceOf[List[String]]
case _ => Nil
}
假设你试图抛出第一个元素,第二个元素就是你想要的列表。
编辑:
请注意,如果第二个元素不是列表,则此强制转换将导致异常。这是真的可怕处理List [Any]并尝试解码其中的内容......
答案 1 :(得分:0)
这是我的解决方案:
scala> val Some(xs @ List(_*)) = parse_test
xs: List[Any] = List(this, List(a, b, List(c, d)))