Je télécharge une chaîne JSON et je la convertis en JSONArray. Je le mets dans une listview et je dois pouvoir supprimer de cette listview plus tard, et comme JSONArray n'a pas de méthode .remove (merci Obama), j'essaye de le convertir en arraylist.
voici mon JSON (le 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"}]
J'ai besoin de le mettre dans un tableau et de pouvoir appeler les chaînes par leurs clés respectives. Appréciez toute aide!
android
android-listview
TheGeekNess
la source
la source
Réponses:
la source
listdata.add(jArray.optJSONObject(i));
si votre listdata est un arrayList JSONObject.ArrayList<JSONObject> listdata = new ArrayList<JSONObject>();
ArrayList<Object>
?Je l'ai fait en utilisant
Gson
(par Google) .Ajoutez la ligne suivante à votre module
build.gradle
:JSON
chaîne:ContactModel.java
:Code pour convertir une chaîne JSON en
ArrayList<Model>
:Remarque: vous devez importer
java.lang.reflect.Type;
:J'espère que ceci vous aidera.
la source
getAsJsonArray()
méthode apparemment. Je vous remercie!essayez de cette façon. Faites simplement une boucle à travers cela, construisant votre propre tableau. Ce code suppose qu'il s'agit d'un tableau de chaînes, il ne devrait pas être difficile à modifier pour s'adapter à votre structure de tableau particulière.
la source
Au lieu de convertir la chaîne JSON en ArrayList ou même en Map, vous pouvez simplement créer un JSONObject lui-même. Cet objet a la capacité d' obtenir des valeurs de chaîne par clé , comme vous le souhaitez et également de supprimer des objets .
Pour créer un à
JSONObject
partir d'une chaîne JSON correctement formatée, vous appelez simplement le constructeur approprié .la source
J'ai une solution rapide. Créez simplement un fichier
ArrayUtil.java
Usage:
ou
la source
ArrayList<String>
JSONArray
dans une liste afin que je puisse mettre leList
dans unHashMap
, donc cet util a fonctionné assez bien pour moi. Merci @Vasilii SuricovDans Java 8,
la source
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());
ce qui n'est plus si élégant. Donc je vais aller avec un foreach :)la source
Pour le rendre pratique, utilisez POJO.
essayez comme ça ...
la source
Utilisation de Gson
la source
si vous souhaitez extraire des données sous forme de tableau de chaînes JSON, voici mon code de travail. changer le paramètre en tant que vos données.
Classe PoJo
Extrayez vos données en utilisant la ligne de code ci-dessous
il vous renverra la liste des objets de classe PoJo.
la source
Style Java 8
la source
la source
J'ai une solution rapide. Créez simplement un fichier
ArrayUtil.java
Usage:
ou
la source
Variante générique
la source
@simplifié
la source
Juste en passant par le sujet original du fil:
conversion de jsonarray en liste (utilisé jackson jsonarray et object mapper ici):
la source
Une alternative plus simple à Java 8:
la source