• 13/11/2013
  • admin
  • 0
Hoy en dia nos toca trabajar más y más con el formato JSON en el mundo Java. Hay situaciones en las que nuestro servidor de aplicaciones tiene soporte (JEE6) y otras muchas en las que no y nos tenemos que apoyar en frameworks de terceros (Apache CXF). Por ultimo hay situaciones en las que simplemente tenemos que cubrir de forma rápida el problema y seguir adelante .Es en estas situaciones en las que la libreria de Google (Google JSON) es muy práctica y nos permite generar estructuras JSON de forma sencilla .Vamos a verlo a continuación utilizando un sencillo Servlet. En un primer lugar nuestro Servlet imprimirá por pantalla en formato HTML una lista de objetos dentro de una tabla.
Vamos a mostrar el código fuente de la clase Persona y el del Servlet que imprime una lista de personas :
Persona.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.arquitecturajava.negocio;
public class Persona {
public Persona(String nombre, int edad) {
 super();
 this.nombre = nombre;
 this.edad = edad;
 }
 private String nombre;
 private int edad;
 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;
 }
}
ServletDatos.java
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
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.arquitecturajava.negocio.Persona;
public class ServletDatos extends HttpServlet {
 private static final long serialVersionUID = 1L;
public ServletDatos() {
 super();
 // TODO Auto-generated constructor stub
 }
protected void doGet(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
List<Persona> lista = new ArrayList<Persona>();
 lista.add(new Persona("pedro", 20));
 lista.add(new Persona("ana", 30));
PrintWriter pw = response.getWriter();
 pw.println("<html>");
 pw.println("<body>");
for (Persona p : lista) {
pw.println("<p>" + p.getNombre());
 pw.println(p.getEdad() + "</p>");
}
 pw.println("</body>");
 pw.println("</html>");
}
}
El servlet nos mostrará la siguiente información.

Objetos y JSON (GSON)

Realizada esta operación vamos a modificar el Servlet para utilizar la librería de Google (GSON) y que la información que se genere sea en formato JSON.La librería se encuentra disponible en la siguiente URL.
Instalada la librería modificaremos el Servlet para que genere los datos en formato JSON.
Vamos a  ver el código:
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
package com.arquitecturajava.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.arquitecturajava.negocio.Persona;
import com.google.gson.Gson;
public class ServletDatosJSON extends HttpServlet {
 private static final long serialVersionUID = 1L;
 public ServletDatosJSON() {
 super();
 // TODO Auto-generated constructor stub
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 List<Persona> lista = new ArrayList<Persona>();
 lista.add(new Persona("pedro", 20));
 lista.add(new Persona("ana", 30));
 Gson gson= new Gson();
 PrintWriter pw=response.getWriter();
 pw.println( gson.toJson(lista));
 pw.close();
 }
}
Como podemos ver la libreria es muy sencilla de utilizar . En primer lugar nos creamos un objeto Gson.
Gson gson= new Gson();
Para mas adelante pasarle la lista de personas y que la convierta
pw.println( gson.toJson(lista));
Realizados estos cambios el Servlet devuelve lo siguiente :
Como podemos ver utilizar la librería es muy sencillo
Tags:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies