128 votes

Conversion de JSONarray en ArrayList

Je télécharge une chaîne JSON et la convertit en JSONArray. Je la place dans une liste et je dois pouvoir la supprimer ultérieurement. Comme JSONArray n'a pas de méthode .remove (merci Obama), j'essaie de la convertir en tableau.

voici mon JSON (le tableau.toString()) :

[
    {
         "thumb_url":"tb1370913834.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 de caractères par leurs clés respectives. J'apprécie toute aide !

5voto

Aragorn Points 45

En Java 8,

IntStream.range(0,jsonArray.length()).mapToObj(i->jsonArray.getString(i)).collect(Collectors.toList())

4voto

Deepak Mishra Points 1996
 JSONArray array = new JSONArray(json);
 List<JSONObject> list = new ArrayList();
 for (int i = 0; i < array.length();list.add(array.getJSONObject(i++)));

2voto

Bheem Singh Points 31

J'ai une solution rapide. Il suffit de créer un fichier ArrayUtil.java

ObjectMapper mapper = new ObjectMapper(); 
List<Student> list = Arrays.asList(mapper.readValue(jsonString, Student[].class));

Utilisation :

ArrayList<Object> list = ArrayUtil.convert(jArray);

ou

JSONArray jArr = ArrayUtil.convert(list);

2voto

Mehul Boghra Points 73

Si vous voulez extraire des données d'un tableau de chaînes JSON, voici mon code de travail. changez le paramètre comme vos données.


Classe PoJo

public class AllAppModel {
    private String appName;
    private String packageName;
    private int uid;
    private boolean isSelected;
    private boolean isSystemApp;
    private boolean isFav;
}

Extrayez vos données en utilisant la ligne de code suivante

try {
    JSONArray jsonArr = new JSONArray("Your json string array");
    List<AllAppModel> lstExtrextData = new ArrayList<>();
    for (int i = 0; i < jsonArr.length(); i++) {
        JSONObject jsonObj = jsonArr.getJSONObject(i);
        AllAppModel data = new AllAppModel();
        data.setAppName(jsonObj.getString("appName"));
        data.setPackageName(jsonObj.getString("packageName"));
        data.setUid(jsonObj.getInt("uid"));
        data.setSelected(jsonObj.getBoolean("isSelected"));
        data.setSystemApp(jsonObj.getBoolean("isSystemApp"));
        data.setFav(jsonObj.getBoolean("isFav"));
        lstExtrextData.add(data);
    }
} catch (JSONException e) {
    e.printStackTrace();
}

il vous retournera la liste des objets de la classe PoJo.

2voto

HIMANSHU GOYAL Points 417

Si l'objet Json est constitué d'un tableau de chaînes de caractères, il est possible de ne pas utiliser JSONArray.

si le Json n'est pas au format chaîne, nous pouvons le convertir en chaîne. Maintenant, si la chaîne Json est :

String value = "[\"value1\",\"value2\"]";

Ensuite, nous pouvons utiliser pour obtenir la liste des chaînes :

List<String> result = new Gson().fromJson(value, List.class);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X