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 !

0voto

Phoenix87 Points 237

Avec Kotlin, vous pouvez éviter une boucle en enveloppant le JSONArray avec une MutableList, par exemple.

val artistMetadata = player.metadata.optJSONArray("artist")
val artists = MutableList<String>(artistMetadata.length()) { i -> artistMetadata.getString(i)}

0voto

aianitro Points 744
public static List<String> convertJsonArrayToStringList(JsonArray ja){

    List<String> result = new ArrayList<String>();     
    for(JsonElement je: ja)
        result.add(je.getAsString());

    return result;

}

0voto

Dut A. Points 498

Cela peut faire ( Java >= 8 ):

    // Functional (variable)
    Function<JSONArray, ArrayList<String>> convert = jsonArray -> (ArrayList<String>) jsonArray.stream()
        .map(item -> item.toString())
        .collect(Collectors.toList());

    // Call
    convert.apply(jsonArray);

    // Regular method (OOP)
    private Function<JSONArray, ArrayList<String>> convert() {
        return jsonArray -> (ArrayList<String>) jsonArray.stream()
            .map(item -> item.toString())
            .collect(Collectors.toList());
   }

   // Call
   convert().apply(jsonArray);

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