我在Scala 2.8中使用JSON类中的构建来解析JSON代码.由于最小化依赖性,我不想使用Liftweb或其他任何一个.
我这样做的方式似乎太迫切了,有没有更好的方法呢?
import scala.util.parsing.json._
...
val json:Option[Any] = JSON.parseFull(jsonString)
val map:Map[String,Any] = json.get.asInstanceOf[Map[String, Any]]
val languages:List[Any] = map.get("languages").get.asInstanceOf[List[Any]]
languages.foreach( langMap => {
val language:Map[String,Any] = langMap.asInstanceOf[Map[String,Any]]
val name:String = language.get("name").get.asInstanceOf[String]
val isActive:Boolean = language.get("is_active").get.asInstanceOf[Boolean]
val completeness:Double = language.get("completeness").get.asInstanceOf[Double]
}
Run Code Online (Sandbox Code Playgroud) 我正在使用JSON.parseFull()解析此字符串.这个方法对我来说非常方便,因为我需要一张Map
val jStr = """{"wt":"json","rows":500}"""
println( JSON.parseFull(jStr) )
Run Code Online (Sandbox Code Playgroud)
这是输出:
Some(Map(wt -> json, rows -> 500.0)) // ´rows´ as Double
Run Code Online (Sandbox Code Playgroud)
我想取回一个Integer而不是Double.
Some(Map(wt -> json, rows -> 500)) // ´rows´ as Integer
Run Code Online (Sandbox Code Playgroud)
那可能吗?