Hola a todos, hoy os voy a enseñar como podemos parsear un JSON a Java con GSON.
Java y JSON no están reñidos, podemos parsear un JSON a Java usando diferentes bibliotecas, en esta ocasión, vamos a utilizar GSON, que es un JAR de Google para tratar JSON, por eso la G.
Puedes descargar el JAR aquí.
Recuerda de añadirlo a tu proyecto, sino sabes hacerlo, te dejo un manual sobre ello:
Este es el JAR que tenemos:
|
1 2 3 4 5 6 7 8 |
{ "nombre": "Fernando", "edad": 30, "aficiones": [ "Programar", "Deporte" ] } |
Este fichero lo tendremos en la raíz del proyecto Java.
La clase de Java que vamos a usar es:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
public class Persona { private String nombre; private int edad; private String[] aficiones; public Persona() { } public Persona(String nombre, int edad, String[] aficiones) { this.nombre = nombre; this.edad = edad; this.aficiones = aficiones; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } public String[] getAficiones() { return aficiones; } public void setAficiones(String[] aficiones) { this.aficiones = aficiones; } @Override public String toString() { return "Persona{" + "nombre=" + nombre + ", edad=" + edad + ", aficiones=" + aficiones + '}'; } } |
Lo primero que haremos es recoger con un BufferedReader, el contenido del archivo JSON.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
String json = ""; try { BufferedReader br = new BufferedReader(new FileReader("ejemplo.json")); String linea; while ((linea = br.readLine()) != null) { json += linea; } br.close(); } catch (FileNotFoundException ex) { Logger.getLogger(Ejercicio_ficheros_DDR_19.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Ejercicio_ficheros_DDR_19.class.getName()).log(Level.SEVERE, null, ex); } System.out.println(json); |
El contenido del archivo JSON, seria así (no se ve de forma completa):

Ahora vamos a usar GSON. Creamos un objeto GSON:
|
1 |
Gson gson = new Gson(); |
Para parsear un objeto con GSON:
|
1 |
Persona p = gson.fromJson(json, Persona.class); |
Mostramos el objeto:
|
1 |
System.out.println(p); |
Este es el resultado:

Que el array se vea así es normal, aquí se puede ver mejor.

Os dejo el ejemplo completo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import com.google.gson.Gson; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; public class Ejercicio_ficheros_DDR_19 { public static void main(String[] args) { String json = ""; try { BufferedReader br = new BufferedReader(new FileReader("ejemplo.json")); String linea; while ((linea = br.readLine()) != null) { json += linea; } br.close(); } catch (FileNotFoundException ex) { Logger.getLogger(Ejercicio_ficheros_DDR_19.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Ejercicio_ficheros_DDR_19.class.getName()).log(Level.SEVERE, null, ex); } System.out.println(json); Gson gson = new Gson(); Persona p = gson.fromJson(json, Persona.class); System.out.println(p); } } |
Os dejo un vídeo que os puede ayudar:
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta