Gson convierte una matriz de objetos de datos en json – Android

Actualmente estoy trabajando en una aplicación androide nativa con frontend webView.

Tengo algo como:

public class dataObject { int a; String b; } 

Y en actividad,

He hecho una matriz de dataObject, digamos dataObject x [5];

Ahora quiero pasar estos 5 dataObject a mi interfaz javascript webView como JSON en una función de devolución de llamada.

Miré a través de Internet, parece que la mayoría de tutoriales hablar de cómo convertir fromJson() . No hay mucho sobre toJson() . Encontré uno que me enseñó que dataObject.toJson() , funcionaría.

Pero, ¿cómo puedo pasar los 5 dataObjects?

2 Solutions collect form web for “Gson convierte una matriz de objetos de datos en json – Android”

He aquí un ejemplo completo sobre cómo usar Gson con una lista de objetos. Esto debe demostrar exactamente cómo convertir a / desde Json, cómo referenciar listas, etc.

Test.java :

 import com.google.gson.Gson; import java.util.List; import java.util.ArrayList; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; public class Test { public static void main (String[] args) { // Initialize a list of type DataObject List<DataObject> objList = new ArrayList<DataObject>(); objList.add(new DataObject(0, "zero")); objList.add(new DataObject(1, "one")); objList.add(new DataObject(2, "two")); // Convert the object to a JSON string String json = new Gson().toJson(objList); System.out.println(json); // Now convert the JSON string back to your java object Type type = new TypeToken<List<DataObject>>(){}.getType(); List<DataObject> inpList = new Gson().fromJson(json, type); for (int i=0;i<inpList.size();i++) { DataObject x = inpList.get(i); System.out.println(x); } } private static class DataObject { private int a; private String b; public DataObject(int a, String b) { this.a = a; this.b = b; } public String toString() { return "a = " +a+ ", b = " +b; } } } 

Para compilarlo:

 javac -cp "gson-2.1.jar:." Test.java 

Y, finalmente, para ejecutarlo:

 java -cp "gson-2.1.jar:." Test 

Tenga en cuenta que si está utilizando Windows, tendrá que cambiar : with ; En los dos comandos anteriores.

Después de ejecutarlo, debería ver la siguiente salida:

 [{"a":0,"b":"zero"},{"a":1,"b":"one"},{"a":2,"b":"two"}] a = 0, b = zero a = 1, b = one a = 2, b = two 

Tenga en cuenta que este es sólo un programa de línea de comandos para demostrar cómo funciona, pero los mismos principios se aplican en el entorno de Android (referenciando jar libs, etc.)

Mi versión de la deserialización de la lista de gson usando una clase del ayudante:

 public List<E> getList(Class<E> type, JSONArray json) throws Exception { Gson gsonB = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); return gsonB.fromJson(json.toString(), new JsonListHelper<E>(type)); } public class JsonListHelper<T> implements ParameterizedType { private Class<?> wrapped; public JsonListHelper(Class<T> wrapped) { this.wrapped = wrapped; } public Type[] getActualTypeArguments() { return new Type[] {wrapped}; } public Type getRawType() { return List.class; } public Type getOwnerType() { return null; } } 

Uso

 List<Object> objects = getList(Object.class, myJsonArray); 
  • Convertir cadena a Android JSONObject pierde utf-8
  • Parsing Gson con Json no funciona para Android
  • Crear cadena JSON con GSON
  • Utilizar JAXB (xjc) clases generadas en android
  • Google Analytic "GET A CONFIGURATION FILE" no me permite seleccionar mi cuenta
  • ArrayAdapter: Los datos de Json se enviarán a spinner
  • Android Volley Null Pointer Exception
  • Deserialización de tipos genéricos con GSON
  • ¿Cómo obtener la ubicación actual de este código de mapa? También intento recibir datos del vehículo del servidor cuando estoy abierto el mapa
  • OutOfMemoryError cuando se utiliza Gson para analizar una gran respuesta JSON
  • Analizando JSON en Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.