Estoy usando la compilación en la clase JSON en Scala 2.8 para analizar el código JSON. No quiero usar Liftweb ni uno ni ningún otro debido a la minimización de dependencias.¿Cómo se analiza JSON en Scala usando las clases estándar de Scala?
La forma en que lo estoy haciendo parece demasiado imperativa, ¿hay una mejor manera de hacerlo?
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]
}
Me gusta su enfoque de edición 2 de declarar objetos con los tipos previstos y un método de cancelar la aplicación. Si lo publica como una respuesta separada, lo votaré. – Steve
Perdón por desenterrar una publicación anterior, pero ¿cuál es el significado de la primera Parte (M (mapa)) en el ciclo? Entiendo que el M (mapa) está extrayendo el mapa a la variable "mapa", pero ¿qué hay del Algunos? –
@FedericoBonelli, 'JSON.parseFull' devuelve' Opción [Cualquiera] ', por lo que comienza con' List (None) 'o' List (Some (any)) '. El 'Algunos' es para la coincidencia de patrones en' Opción'. – huynhjl