Esta es la segunda entrega de Introducción a Json con Java y aquí veremos un ejemplo mas robusto y práctico de utilizar Java para generar objetos con la notación que nos exige Javascript osea JSON.
I: El requerimiento.
El webmaster del sitio del festival del viña nos pide la parrilla programática para incluirla en varias partes del sitio, como solución a su requerimiento nosotros le planteamos el uso de JSON.
Los detalles del requerimiento, es que la programación del festival debe estar separado por los dias y que pueda estar sujeto a cambios, por este motivo utilizaremos Java para crear los objetos JSON.
II: Creando las clases con JAVA
Necesitamos la clase Festival, Programa y Artista.
Clase Artista
public class Artista {
public String nombre;
public String categoria;
public Artista() {
}
public Artista(String nombre, String categoria) {
this.nombre = nombre;
this.categoria = categoria;
}
}
Clase Programa
public class Programa {
public String dia;
public List<Artista> artistas;
public Programa(){}
public Programa(String dia, List<Artista> artistas){
this.dia = dia;
this.artistas = artistas;
}
}
Clase Festival
public class Festival {
public String nombre;
public List<Programa> programacion;
public Festival(){
}
public Festival(String nombre, List<Programa> programacion){
this.nombre = nombre;
this.programacion = programacion;
}
}
III:Implementación
Luego que tenemos las clases, las instaciamos y llenamos la data manualmente. Cabe destacar que esto perfectamente puede ser extraido de una DB u otro source, pero consultas a DB no esta en el alcance de este documento.
public class Main {
//Creando Listas de artistas
public static void main(String[] args) {
//Creando Artistas
List<Artista> lunes = new ArrayList<Artista>();
List<Artista> martes = new ArrayList<Artista>();
List<Artista> miercoles = new ArrayList<Artista>();
List<Artista> jueves = new ArrayList<Artista>();
List<Artista> viernes = new ArrayList<Artista>();
List<Artista> sabado = new ArrayList<Artista>();
//Creando Programacion
List<Programa> programacion = new ArrayList<Programa>();
lunes.add(new Artista("J. Manuel Serrat", "Musico/Cantante"));
lunes.add(new Artista("Camila", "Musico/Cantante"));
lunes.add(new Artista("La Noche", "Musico/Cantante"));
programacion.add(new Programa("Lunes", lunes));
//Martes 24:
martes.add(new Artista("Juanes", "Musico/Cantante"));
martes.add(new Artista("Fernando Ubiergo", "Musico/Cantante"));
martes.add(new Artista("KC and the Sunshine Band", "Musico/Cantante"));
programacion.add(new Programa("Martes", martes));
//Miércoles 25:
miercoles.add(new Artista("Carlos Santana", "Musico/Cantante"));
miercoles.add(new Artista("Dinamita Show", "Musico/Cantante"));
miercoles.add(new Artista("Roger Hodgson", "Musico Cantante"));
programacion.add(new Programa("Miercoes", miercoles));
//Jueves 26:
jueves.add(new Artista("Simply Red", "Musico/Cantante"));
jueves.add(new Artista("Manpoval", "Musico/Cantante"));
jueves.add(new Artista("Paolo Meneguzzi", "Musico/Cantante"));
jueves.add(new Artista("R.K.M. Y KEN Y", "Musico/Cantante"));
programacion.add(new Programa("Jueves", jueves));
//Viernes 27:
viernes.add(new Artista("Luis Fonsi", "Musico/Cantante"));
viernes.add(new Artista("Daddy Yankee", "Musico/Cantante"));
programacion.add(new Programa("Vienres", viernes));
//Sábado 28:
sabado.add(new Artista("Natalino", "Musico/Cantante"));
sabado.add(new Artista("Marc Anthony", "Musico/Cantante"));
programacion.add(new Programa("Sabado", sabado));
//Ya con todos los datos, creamos el Festival de viña
Festival festival2009 = new Festival("Viña 2009 50 años", programacion);
}
}
Finalmente convertimos nuestro objeto festival2009 a JSON
<span style="white-space:pre"> </span> Gson gson = new Gson();
String jsonOutput = gson.toJson(festival2009);
System.out.println("txt: "+jsonOutput);
El output generado por google queda de la siguiente manera
{
"nombre": "Viña 2009 50 años",
"programacion": [
{
"dia": "Lunes",
"artistas": [
{
Page 1 of 3 | Next page