Convertir JSONArray en chaîne

Je souhaite poser une question sur la conversion d'un jsonArray en StringArray sur Android. Voici mon code pour obtenir jsonArray à partir du serveur.

try { DefaultHttpClient defaultClient = new DefaultHttpClient(); HttpGet httpGetRequest = new HttpGet("http://server/android/listdir.php"); HttpResponse httpResponse = defaultClient.execute(httpGetRequest); BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(),"UTF-8")); String json = reader.readLine(); //JSONObject jsonObject = new JSONObject(json); JSONArray jsonArray = new JSONArray(json); Log.d("", json); //Toast.makeText(getApplicationContext(), json, Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Et c'est le JSON.

  • Comment créer Celestia sur Android?
  • TabLayout (Android Design Library) Couleur du texte
  • Quelle est l'alternative à getActionView () avant le niveau API 11 dans Android?
  • Quel est le but principal des méthodes getTag () setTag () de View?
  • Hauteur RelativeLayout pour compléter l'espace restant
  • Où les préférences partagées sont-elles stockées?
  • [{"Nom": "IMG_20130403_140457.jpg"}, {"nom": "IMG_20130403_145006.jpg"}, {"nom": "IMG_20130403_145112.jpg"}, {"nom": "IMG_20130404_085559.jpg"}, { "Nom": "IMG_20130404_113700.jpg"}, {"nom": "IMG_20130404_113713.jpg"}, {"nom": "IMG_20130404_135706.jpg"}, {"nom": "IMG_20130404_161501.jpg"}, {"nom ":" IMG_20130405_082413.jpg "}, {" nom ":" IMG_20130405_104212.jpg "}, {" nom ":" IMG_20130405_160524.jpg "}, {" nom ":" IMG_20130408_082456.jpg "}, {" nom ": "Test.jpg"}]

    Comment puis-je convertir jsonArray que j'ai à StringArray afin que je puisse obtenir StringArray comme ceci:

    Array = {"IMG_20130403_140457.jpg", "IMG_20130403_145006.jpg", …….., "test.jpg"};

    Merci de votre aide… 🙂

    10 Solutions collect form web for “Convertir JSONArray en chaîne”

    Jetez un coup d'oeil à ce tutoriel, vous pouvez également analyser ci-dessus json comme

     JSONArray arr = new JSONArray(yourJSONresponse); List<String> list = new ArrayList<String>(); for(int i = 0; i < arr.length(); i++){ list.add(arr.getJSONObject(i).getString("name")); } 
     String[] arr = jsonArray.toString().replace("},{", " ,").split(" "); 

    Le code le plus simple et le plus correct est:

     public static String[] toStringArray(JSONArray array) { if(array==null) return null; String[] arr=new String[array.length()]; for(int i=0; i<arr.length; i++) { arr[i]=array.optString(i); } return arr; } 

    L'utilisation de la List<String> n'est pas une bonne idée, car vous connaissez la longueur du tableau. Observez qu'il utilise arr.length in condition pour éviter d'appeler une méthode, c'est-à-dire array.length() , sur chaque boucle.

     public static String[] getStringArray(JSONArray jsonArray) { String[] stringArray = null; if (jsonArray != null) { int length = jsonArray.length(); stringArray = new String[length]; for (int i = 0; i < length; i++) { stringArray[i] = jsonArray.optString(i); } } return stringArray; } 

    Vous pouvez faire une boucle pour créer la chaîne

     List<String> list = new ArrayList<String>(); for (int i=0; i<jsonArray.length(); i++) { list.add( jsonArray.getString(i) ); } String[] stringArray = list.toArray(new String[list.size()]); 

    Voilà:

     String tempNames = jsonObj.names().toString(); String[] types = tempNames.substring(1, tempNames.length()-1).split(","); //remove [ and ] , then split by ',' 

    Voici le code:

     // XXX satisfies only with this particular string format String s = "[{\"name\":\"IMG_20130403_140457.jpg\"},{\"name\":\"IMG_20130403_145006.jpg\"},{\"name\":\"IMG_20130403_145112.jpg\"},{\"name\":\"IMG_20130404_085559.jpg\"},{\"name\":\"IMG_20130404_113700.jpg\"},{\"name\":\"IMG_20130404_113713.jpg\"},{\"name\":\"IMG_20130404_135706.jpg\"},{\"name\":\"IMG_20130404_161501.jpg\"},{\"name\":\"IMG_20130405_082413.jpg\"},{\"name\":\"IMG_20130405_104212.jpg\"},{\"name\":\"IMG_20130405_160524.jpg\"},{\"name\":\"IMG_20130408_082456.jpg\"},{\"name\":\"test.jpg\"}]"; s = s.replace("[", "").replace("]", ""); s = s.substring(1, s.length() - 1); String[] split = s.split("[}][,][{]"); for (String string : split) { System.out.println(string); } 

    Vous pouvez entrer json array à cette fonction obtenir la sortie en tant que chaîne

    Exemple Input – {"gender": ["male", "female"]}

    Output – {"male", "female"}

     private String[] convertToStringArray(Object array) throws Exception { return StringUtils.stripAll(array.toString().substring(1, array.toString().length()-1).split(",")); } 

    Une méthode prête à l'emploi:

     /** * Convert JSONArray to ArrayList<String>. * * @param jsonArray JSON array. * @return String array. */ public static ArrayList<String> toStringArrayList(JSONArray jsonArray) { ArrayList<String> stringArray = new ArrayList<String>(); int arrayIndex; JSONObject jsonArrayItem; String jsonArrayItemKey; for ( arrayIndex = 0; arrayIndex < jsonArray.length(); arrayIndex++) { try { jsonArrayItem = jsonArray.getJSONObject( arrayIndex); jsonArrayItemKey = jsonArrayItem.getString( "name"); stringArray.add( jsonArrayItemKey); } catch (JSONException e) { e.printStackTrace(); } } return stringArray; } 

    En utilisant uniquement l'API JAVA portable. http://www.oracle.com/technetwork/articles/java/json-1973242.html


      try (JsonReader reader = Json.createReader(new StringReader(yourJSONresponse))) { JsonArray arr = reader.readArray(); List<String> l = arr.getValuesAs(JsonObject.class) .stream().map(o -> o.getString("name")).collect(Collectors.toList()); } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.