Leer un archivo JSON en Scala es una tarea común en proyectos que requieren el manejo de datos estructurados. Scala ofrece varias librerías para este propósito, siendo Play JSON y Circe dos de las más populares.
Play JSON es una poderosa librería para trabajar con JSON en Scala. Su integración es sencilla y se puede usar para leer y escribir JSON de manera eficiente.
1. Agrega la dependencia de Play JSON en tu archivo build.sbt
:
libraryDependencies += "com.typesafe.play" %% "play-json" % "2.9.2"
2. Crea una clase case que represente la estructura de tu JSON:
case class Persona(nombre: String, edad: Int)
3. Importa las librerías necesarias:
import play.api.libs.json._
import java.nio.file.{Files, Paths}
4. Define un formato implícito para la clase Persona
:
implicit val personaFormat: OFormat[Persona] = Json.format[Persona]
5. Lee el fichero JSON y parsea el contenido:
val path = "ruta/al/archivo.json"
val jsonString = new String(Files.readAllBytes(Paths.get(path)))
val json = Json.parse(jsonString)
val persona = json.as[Persona]
println(persona.nombre) // Imprime el nombre de la persona
{
"nombre": "Juan",
"edad": 30
}
Circe es otra librería popular para manejar JSON en Scala. Requiere definir los encoders y decoders necesarios para convertir entre JSON y objetos Scala.
1. Agrega la dependencia en build.sbt
:
libraryDependencies += "io.circe" %% "circe-parser" % "0.14.3"
2. Define el código para parsear:
import io.circe._, io.circe.parser._
val jsonString = """{"nombre":"Juan", "edad":30}"""
val parseResult = parse(jsonString)
parseResult match {
case Right(json) => println(json)
case Left(failure) => println(s"Error al parsear JSON: $failure")
}
Para más detalles sobre la librería Play JSON, puedes consultar la documentación oficial.
Jorge García
Fullstack developer