¿Cómo utilizar genéricos personalizados en la clase GSON TypeToken?
Quiero pasar la colección de la lista diferente a la clase de TypeToken en GSON. Esta es mi clase
public class ConvertToObject<T> { public T MappFrom(InputStream is) String json = ConvertJsonInputStream.toString(is); Gson gson = new Gson(); Type typeOfDest = new TypeToken<T>() { }.getRawType(); T lstObject = gson.fromJson(json, typeOfDest); return lstObject ; } }
Ahora quiero instanciar mi clase de manera diferente Como estos:
- No se puede deserializar la instancia de java.lang.String fuera de START_ARRAY
- Saltos de línea con WCF, JSON y un cliente que no sea Windows
- Cambio de Gson a Jackson para el análisis de JSON
- Envío de los datos al servidor a través del correo cuando la conexión a Internet vuelve
- ¿Cómo analizar después de JSON usando GSON en android?
AssetManager am = getApplicationContext().getAssets(); InputStream is = am.open("form.txt"); ConvertToObject<List<Form>> co = new ConvertToObject<List<Form>>(); List<Form> JsonForm = co.MappFrom(is); InputStream is2 = am.open("Messages.txt"); ConvertToObject<List<Messages>> co = new ConvertToObject<List<Messages>>(); List<Messages> JsonForm = co.MappFrom(is2);
Tengo 27 Json txt archivo en mi carpeta de activos y quiero analizar estos archivos JSON txt en sus clases apropiadas. ¿Cómo debo hacer eso?
Editado: De esta manera me captura una excepción:
Caused by: java.lang.ClassCastException: com.google.gson.internal.StringMap cannot be cast to com.mypackage.Form
- Cómo anidar objetos al crear JSON con JSONObject
- Cómo analizar JSON en Android
- ¿Cómo puedo manejar valor nulo utilizando la función JSonobject.getInt?
- Enviar objeto json al servidor HTTP en android
- Android Java; ¿Cómo puedo analizar un archivo JSON local de carpeta de activos en un ListView
- Aplicación Web de Android RESTful con Zend Framework
- LoganSquare analiza en objeto o mapa genérico
- ¿Por qué recibo una respuesta vacía cuando mi aplicación android llama a mi API en mi servidor?
He resuelto mi problema de esta manera
public class ConvertToObject<T> { public List<T> mapFrom(InputStream is, Type typeOfDest) { String json = ConvertJsonInputStream.toString(is); Gson gson = new Gson(); List<T> lstForm = gson.fromJson(json, typeOfDest); return lstForm; }
Y en mi actividad tengo este código:
ConvertToObject<Menu> co = new ConvertToObject<Menu>(); Type typeOfDest = new TypeToken<List<Menu>>() { }.getType(); AssetManager am = getResources().getAssets(); Log.i("AssetManager", "AssetManager"); InputStream is = null; try { is = am.open("menu.txt"); } catch (IOException e) { Log.i("InputStream", e.getMessage()); } List<Menu> JsonForm = co.mapFrom(is, typeOfDest);
- ¿Cuál es el contenido de vold.fstab, o la sintaxis de la línea dev_mount?
- AudioRecord y AudioTrack latency