Volver a la página principal
lunes 14 octubre 2024
2

Cómo leer un fichero JSON en Scala

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.

Lectura de JSON con Play JSON

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.

Pasos para leer un archivo JSON con Play JSON:

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

Algunos ejemplos

Ejemplo de un archivo JSON:

{
  "nombre": "Juan",
  "edad": 30
}

Ejemplo de uso con Circe:

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.

Etiquetas:
scala
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer