jueves, 22 de febrero de 2018

Java Json con Maven, gson, IntelliJ

Se muestra como manejar archivo json y convertirlo a elementos Java, se crea un projecto Maven en IntelliJ , se agrega al archivo pom la dependencia de librería gson (google json) , y se usa pruebas unitarias Junit, cuya librería se agrega como Maven para que no tenga dependencia con el IDE de IntelliJ.
  El archivo json es resultado de consulta de la Wikipedia donde se muestran los títulos y las revisiones de articulos se pueden obtener con la herramienta de MediaWiki API:revisions.

El archivo de ejemplo sample.json es de la forma siguiente
{
  "continue": {
    "rvcontinue": "201678237463842734692347826039",
    "continue": "||"  },
  "query": {
    "pages": {
      "12359849": {
        "pageid": 12359849,
        "ns": 0,
        "title": "Soup",
        "revisions": [
          {
            "user": "JuanitoPerez",
            "timestamp": "2018-02-03T11:09:23Z"          },
          {
            "user": "JuanitoLopez",
            "timestamp": "2018-02-03T12:09:23Z"          },
          {
            "user": "AnaPerez",
            "timestamp": "2018-02-03T13:09:23Z"          },
          {
            "user": "PepeJuanito",
            "timestamp": "2018-02-03T14:09:23Z"          }
        ]
      }
    }
  }
}

 

   En la primera version llegamos a abrir el archivo, leerlo y parsearlo.
   el contenido del parser nos da


   En esta otra versión llegamos al elemento pages pasando por el elemento query del archivo json


  El contenido de pages

   Como puede haber varias pages, las recorremos con un loop, usando pages.entrySet() que nos da un Map.Entry<String,JsonElement>, y de ahí llagamos a las revisions que se convierten en array.

 El contenido de las revisones de la primer "page".

   Se agrega al archivo json otra page, con otras cuatro revisions.

  En este caso se usa la librería gson (google json) para manejar los json files.

El github del ejercicio está en https://github.com/jalbertomr/JavaJsonGson.git

No hay comentarios:

Publicar un comentario