Ayuda a Deserializar JSON con GSON

Hola les cuento que hago la peticion a una API de Yahoo () con "java.net.URL" la cual me responde en formato JSON la conexion la hace sin problemas y obtiene el resultado bien... el caso esta en que tengo que deserealizar con GSON pero no lo he conseguido, agrego la respuesta y la forma en que trato de deserealizarlo. Espero puedan darme una mano.

Respuesta de la API Yahoo.
 

Aqui el codigo de como trato de deserealizar la respuesta de la API

No coloque el codigo que hace la conexion URL, unicamente la parte del GSON, esta clase manda a llamar a la clase LocationAddress que contiene las variables para la deserealizacion
 

Aqui el codigo de LocationAddress, que es donde esta el problema ya que no se si esa sea la forma correcta de ordenar.
 

Espero puedan darme una mano para la correcta deserealizacion del JSON ya que lo he intentado bastante y no logro hacerlo....

Salu2

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

JSON Deserializacion usando GSON

Pues leyendo la documentacion encontré que automaticamente lo hace GSON.

Lo que hice fue crear una clase Persona que definia nombre, edad, hijos y finalmente una clase en la cual tenia como propiedad a esa clase Persona

  
ContenedorPersona.java
 
  
Contenedor.java
 

  
Usé tu mismo archivo de respuesta solo que lo acorte y le puse otros atributos, pero es la misma estructura que tienes
 

  
Para leer el archivo JSON:
 

ahora para hacer que GSON haga la magia:
 

  
Si te das cuenta, no tienes que hacer mas cosa que asignar el tipo del Objeto al que quieres que GSON realice la deserializacion, obviamente hay que cuidar que los nombres de los atributos de la clase sean exactamente igual nombrados que los de tu archivo JSON.
   
Por cierto, agregué anotaciones de Lombook (me da hueva hacer getters y setters). Ah y puedes hacer   para ver como se deserealizo tu JSON al objeto  . En mi caso la salida fue:
 

Imagen de ingscjoshua

Asi es...

como dice java.daba.doo asi se hace solo recuerda que el documento de respuesta siempre debe contener la misma estructura porque si cambia la estructura tu clase de parseo ya no funcionara asi que ojo con eso

Lo revisare por la tarde

Hola java.daba.doo gracias por la respuesta por la noche revisare, haber si lo comprendo...

Segun veo hiciste pruebas con codigo, podrias pasarme los archivos para asi pasarlos a mi eclipse e ir revisandolos y adaptarlos a lo que necesito, perdona la inprudencia pero he tardado en esto y esto agilizaria mas...

Salu2

No lo he conseguido

Hola que pena decirlo pero no he logrado Deserealizar el JSON apesar de lo comentado por java.daba.doo
No se si puedieran explicar mas a detalle el ejemplo dado y ya en base a esto poder trabajar con las otras respuestas.

mis dudas son que menciona una clase Persona pero en el codigo no hay codigo de esta pero si lo pone como propiedad en
 

y en esta otra me marca que la clase PersonaBean[] hijos; no existe

 

Agradesco las respuestas
Salu2

Fe de erratas

Si, me equivoque...   y   eran lo mismo, lo que pasa es que a veces edito cosas cuando estoy publicando.

Lo del atributo persona, revisa bien mi JSON, es lo primero que aparece:
 

Por que no tomas mi codigo, le cambias los nombres y le agregas las propiedades, con la misma estructura porque yo use la que tenias.

Haber si comprendi

Hola java.daba.doo gracias por la pronta respuesta...
Antes de comenzar a tirar codigo quiero dejar en claro mis ideas aca te las publico y me dices si es asi..

1.- Necesito tres clases ContenedorPersona, Contenedor y Persona?

2.- La clase Persona es igual a la clase ContenedorPersona pero la clase Persona sera quien controle lo que va dentro del Array es asi? se me ocurre que quedaria asi...
 

3.- La otras clases quedarian asi?

 
 

y la otra duda es en donde deberia colocar el metodo main() con el codigo de ContenedorPersona objeto = gson.fromJson(archivoJsonBufferedReader, ContenedorPersona.class); todo lo que se necesite para leer la respuesta?

Nota: Estoy utilizando tu ejemplo, he creado un archivo con la estructura del JSOn que utilizas y leo este archivo , pues me aprece muy bueno para comprender y asi pasar a trabajar con la respuesta que tengo.

Perdona el fastidio pero llevo escasas dos semanas en Java y me estoy adaptando apenas, agradesco muchisimo tu ayuda eres muy amable
Salu2

Si, hay error en esas lineas

Creo que modifiqué cosas que no debí modificar, la cosa es que   y   pero editandolo aqui le agregué o quite unapalabra...

Subo al github el codigo que hice. Son dos beans (ContenedorPersonaBean y PersonaBean). La clase que hace el parseo es JsonReader

Hay una clase de prueba que se llama JsonReaderTest

Baja todo el proyecto Chachareando

  


Editado:
La clase JsonReader ya tiene un metodo para obtener un JSON desde web.

Gracias

Hola java.daba.doo

Me has ayudado muchisimo estoy trabajando con esto y estudiando para conocer mas sobre el mundo Java.

Muchas gracias por tu ayuda y atencion

Salu2