Estoy descargando una cadena JSON y convirtiéndola a JSONArray. Lo estoy poniendo en una vista de lista y necesito poder eliminarlo de esa vista de lista más tarde, y dado que JSONArray no tiene un método .remove (Gracias Obama), estoy tratando de convertirlo en una lista de arrays.
aquí está mi JSON (el array.toString ()):
[{"thumb_url":"tb-1370913834.jpg","event_id":"15","count":"44","event_tagline":"this is a tagline","event_name":"5th birthday","event_end":"1370919600","event_start":"1370876400"}]
Necesito ponerlo en una matriz y poder llamar a las cadenas por sus respectivas claves. ¡Agradezco cualquier ayuda!
android
android-listview
TheGeekNess
fuente
fuente
Respuestas:
fuente
listdata.add(jArray.optJSONObject(i));
si su listdata es un JSONObject arrayList.ArrayList<JSONObject> listdata = new ArrayList<JSONObject>();
ArrayList<Object>
?Lo he hecho usando
Gson
(por Google) .Agregue la siguiente línea a su módulo
build.gradle
:JSON
cuerda:ContactModel.java
:Código para convertir una cadena JSON a
ArrayList<Model>
:Nota: Tienes que importar
java.lang.reflect.Type;
:Espero que esto te ayudará.
fuente
getAsJsonArray()
método aparentemente. ¡Gracias!intente de esta manera Simplemente recorra eso, construyendo su propia matriz. Este código asume que es una matriz de cadenas, no debería ser difícil de modificar para adaptarse a su estructura particular de matriz.
fuente
En lugar de convertir la cadena JSON en una ArrayList o incluso en un Map, puede crear un JSONObject . Este objeto tiene la capacidad de obtener valores de cadena por clave , como desee y también para eliminar objetos .
Para crear a
JSONObject
partir de una cadena JSON con el formato adecuado, simplemente llame al constructor apropiado .fuente
Tengo una solución rápida. Solo crea un archivo
ArrayUtil.java
Uso:
o
fuente
ArrayList<String>
JSONArray
en una lista para poder ponerloList
en unaHashMap
, así que esta utilidad me funcionó bastante bien. Gracias @Vasilii SuricovEn Java 8,
fuente
List<String> listOfStrings = IntStream.range(0, array.length()).mapToObj(i -> { try { return array.getString(i); } catch (JSONException e) { throw new AssertionFailedError("JSONArray is not a list of Strings! " + e.getMessage()); } }).collect(Collectors.toList());
que ya no es tan elegante. Así que iré con un foreach :)fuente
Para que sea útil, use POJO.
prueba así ...
fuente
Usando Gson
fuente
si desea extraer datos de una matriz de cadenas JSON, aquí está mi código de trabajo. cambie el parámetro como sus datos.
Clase PoJo
Extraiga sus datos usando la siguiente línea de código
le devolverá la lista de objetos de la clase PoJo.
fuente
Estilo Java 8
fuente
fuente
Tengo una solución rápida. Solo crea un archivo
ArrayUtil.java
Uso:
o
fuente
Variante genérica
fuente
@simplificado
fuente
Simplemente siguiendo el tema original del hilo:
conversión de jsonarray a list (se usó jackson jsonarray y mapeador de objetos aquí):
fuente
Una alternativa más simple a Java 8:
fuente