Gson

qué es Gson

Gson (también conocido como Google Gson) es una biblioteca de código abierto para el lenguaje de programación Java y para Android que permite la conversión entre objetos Java y su representación en notación JSON de una manera sencilla, simplemente invocando los métodos toJson() o fromJson().

Ejemplo de uso: Gson en Wikipedia

Proyecto en GitHub: google-gson

Documentación de Gson: Javadoc

Tutorial: Gson User Guide

Dependencias en Gradle:

implementation 'com.google.code.gson:gson:2.8.6'

Ejemplo: Lista de contactos usando Gson

contacts.json

{
  "contactos": [
    {
      "nombre": "Angelina Jolie",
      "direccion": "calle los remedios, 29007, malaga",
      "email": "angie@gmail.com",
      "telefono": {
        "casa": "952245407",
        "movil": "603459530",
        "trabajo": "951230246"
      }
    },
    {
      "nombre": "Nikole Kidman",
      "direccion": "calle hilera, 29010, malaga",
      "email": "nikole@gmail.com",
      "telefono": {
        "casa": "952233407",
        "movil": "625459540",
        "trabajo": "951230246"
      }
    },
    {
      "nombre": "Jennifer Lopez",
      "direccion": "calle larios, 29002, malaga",
      "email": "jenny@gmail.com",
      "telefono": {
        "casa": "951065407",
        "movil": "628659550",
        "trabajo": "952002146"
      }
    }
  ]
}

 

¿clase Persona?

public class Persona {

    @SerializedName("contactos")
    @Expose
    private List<Contacto> contactos = null;

    public List<Contacto> getContactos() { return contactos; }

    public void setContactos(List<Contacto> contactos) {
        this.contactos = contactos;
    }

}

obtenerContactos()

public void obtenerContactos() {
    // Inicializar contactos
    try {
        if (!binding.switch1.isChecked()) {
            // Analizar contactos
            contenido = leerFicheroRaw(CONTACTOS);
            contactos = Analisis.analizarContactos(contenido);
        } else {
            // usar Gson


        }
    } catch (JSONException | IOException e) {
        //e.printStackTrace();
        Log.e("Error: ", e.getMessage());
        mostrarMensaje("Error: " + e.getMessage());
    } 
}

 

Deja una respuesta