sábado, 12 de diciembre de 2015

Groovy en ejemplos no.9: Leer un JSON

Usar archivos JSON para el intercambio de información entre aplicaciones se ha vuelto muy indispensable. Es una alternativa para sustituir el uso de archivos XML.

Un archivo JSON se compone de:
  • Una colección tipo diccionario con nombre y valor.
  • Un arreglo o lista ordenada.
Ejemplo. Un archivo JSON llamado "persona.json" puede tener una estructura similar a la siguiente:
{
   "persona": {
          "nombre": "Mariana",
           "edad": 32
   }
}

Donde "persona" es el nodo (objeto) principal. Los valores pueden ser de tipo boolean (true o false), númericos y cadenas.  También podemos definir arreglos (que inician y cierran con corchetes) como este:
{
   "persona": {
          "nombre": "Mariana",
           "edad": 32,
          "libros":[
           "El extraño caso de el perro en el ropero",
           "El error de llamarse Godofredo"
         ]
   }
}

Donde "libros" es el arreglo.

¿Cómo leer el archivo JSON?
  • Necesitamos crear un archivo json (que cumpla con la estructura adecuada), y que denominaremos como "persona.json"
  • Usar la librería groovy.json.JsonSlurper

leerJSON.groovy

import groovy.json.JsonSlurper
import java.io.File

static main(args) {
  def json=new JsonSlurper()
  def archivo=new File("persona.json")

  if(archivo.exists()){
    println "Archivo existe:${archivo.getAbsolutePath()}"
    def objeto=json.parse(archivo) 
    if(objeto !=null){
        if(objeto.persona.nombre == null && objeto.persona.nombre == null){
            println "Objetos nulos"
        }
        javax.swing.JOptionPane.showMessageDialog(null, "Nombre:"+objeto.persona.nombre+"\nEdad:"+objeto.persona.edad)
    }
  }

}


Para acceder a una propiedad del objeto es necesario definir su nombre, por ejemplo, si queremos obtener el "valor" de la propiedad "nombre" debemos acceder de este modo:  objeto.persona.nombre

Ejecutamos: groovy leerJSON.groovy

Y obtenemos:




Links
https://geekytheory.com/json-i-que-es-y-para-que-sirve-json/
http://www.json.org/json-es.html

No hay comentarios:

Publicar un comentario