2016-04-25 20 views
6

Ho un webservice che restituisce una lista di stringhe, solo un elenco di stringhe:JSON String array in Java String lista

["string1","string2","string3"] 

Come posso convertire questo in un ArrayList<String> in java? Sto cercando di usare Jackson perché so che puoi convertire Json in oggetti con esso, ma non riesco a trovare un esempio di un caso come questo.

+0

Non hai bisogno di un Jackson per questo –

+1

@ sᴜʀᴇsʜᴀᴛᴛᴀ Quindi, come dovrei farlo in modo nativo allora? –

risposta

5

Per chiunque altro che potrebbe aver bisogno di questo:

String jsonString = "[\"string1\",\"string2\",\"string3\"]"; 
ObjectMapper mapper = new ObjectMapper(); 
List<String> strings = mapper.readValue(jsonString, List.class); 
0

E 'strano, ma v'è una trasformazione diretti da New JSONArray (stringWithJSONArray) nella lista. Almeno sono stato in grado di fare in questo modo:

public List<String> method(String data) { 
    return new JSONArray(data); 
} 
1

Come ha detto ryzhman, si è in grado di lanciare a un elenco, ma solo l'oggetto (JSONArray nel caso di ryzhman) estende la classe ArrayList. Non hai bisogno di un intero metodo per questo. Si può semplicemente:

List<String> listOfStrings = new JSONArray(data); 

Oppure, se si sta utilizzando JSONArray di IBM (com.ibm.json.java.JSONArray):

List<String> listOfStrings = (JSONArray) jsonObject.get("key");