Estou baixando uma string JSON e convertendo-a em JSONArray. Estou colocando-o em um listview e preciso ser capaz de excluí-lo mais tarde, e como JSONArray não tem nenhum método .remove (Obrigado, Obama), estou tentando convertê-lo em um arraylist.
aqui está meu JSON (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"}]
Preciso colocá-lo em um array e ser capaz de chamar as strings por suas respectivas chaves. Agradeço qualquer ajuda!
android
android-listview
TheGeekNess
fonte
fonte
Respostas:
fonte
listdata.add(jArray.optJSONObject(i));
se seu listdata for um JSONObject arrayList.ArrayList<JSONObject> listdata = new ArrayList<JSONObject>();
ArrayList<Object>
?Eu fiz isso usando
Gson
(pelo Google) .Adicione a seguinte linha ao do seu módulo
build.gradle
:JSON
corda:ContactModel.java
:Código para converter uma string JSON em
ArrayList<Model>
:Nota: Você deve importar
java.lang.reflect.Type;
:Espero que isso ajude você.
fonte
getAsJsonArray()
método aparentemente. Obrigado!tente desta forma Simplesmente percorra isso, construindo seu próprio array. Este código assume que é um array de strings, não deve ser difícil modificá-lo para se adequar à sua estrutura de array particular.
fonte
Em vez de converter a string JSON em uma ArrayList ou até mesmo em um mapa, você pode apenas criar um próprio JSONObject . Este objeto tem a capacidade de obter valores de string por chave , como você quiser, e também de remover objetos .
Para criar um a
JSONObject
partir de uma string JSON formatada corretamente, basta chamar o construtor apropriado .fonte
Tenho solução rápida. Basta criar um arquivo
ArrayUtil.java
Uso:
ou
fonte
ArrayList<String>
JSONArray
em uma lista para poder colocar oList
em umHashMap
, então esse utilitário funcionou muito bem para mim. Obrigado @Vasilii SuricovEm Java 8,
fonte
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 não é mais tão elegante. Então, vou fazer um foreach :)fonte
Para torná-lo prático, use POJO.
tente assim ..
fonte
Usando Gson
fonte
se você deseja extrair dados do array de strings JSON, aqui está meu código de trabalho. altere o parâmetro como seus dados.
Classe PoJo
Extraia seus dados usando a linha de código abaixo
ele retornará sua lista de objetos de classe PoJo.
fonte
Estilo Java 8
fonte
fonte
Tenho solução rápida. Basta criar um arquivo
ArrayUtil.java
Uso:
ou
fonte
Variante genérica
fonte
@simplified
fonte
Apenas indo pelo assunto original do tópico:
convertendo jsonarray em lista (use jackson jsonarray e mapeador de objetos aqui):
fonte
Uma alternativa Java 8 mais simples:
fonte