Comment analyser JSONArray dans Android

Je veux lire ces lignes JSON mais parce qu'il commence par JSONArray je suis un peu confus

"abridged_cast": [ { "name": "Jeff Bridges", "id": "162655890", "characters": [ "Jack Prescott" ] }, { "name": "Charles Grodin", "id": "162662571", "characters": [ "Fred Wilson" ] }, { "name": "Jessica Lange", "id": "162653068", "characters": [ "Dwan" ] }, { "name": "John Randolph", "id": "162691889", "characters": [ "Capt. Ross" ] }, { "name": "Rene Auberjonois", "id": "162718328", "characters": [ "Bagley" ] } ], 

Je dois juste utiliser le "nom" et enregistrer tout comme un String. (La valeur de la chaîne sera: Jeff Bridges, Charles Grodin, Jessica Lange, John Randolph, Rene Auberjonois).

  • Comment faire pour que la vue de la grille se déplace horizontalement pas verticalement dans Android?
  • Android - searchview avec la fonction complète automatique à l'intérieur de la barre d'action
  • Comment ajouter 7 jours à la date actuelle tout en ne dépassant pas les jours disponibles d'un mois?
  • Gérer les actifs entre le bureau et la version de l'appareil dans libgdx
  • Android permet le chargement multiple de fichiers (Max 150 Mo) vers le serveur PHP
  • Meilleures pratiques pour rejoindre des tables et notifier ContentObservers dans Android ContentProvider
  • C'est mon code:

     try { //JSON is the JSON code above JSONObject jsonResponse = new JSONObject(JSON); JSONArray movies = jsonResponse.getJSONArray("characters"); String hey = movies.toString(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

    3 Solutions collect form web for “Comment analyser JSONArray dans Android”

    Si vous êtes après le «nom», pourquoi votre extrait de code ressemble-t-il à une tentative d'obtenir les «caractères»?

    Quoi qu'il en soit, ce n'est pas différent de toute autre opération de liste ou de tableau: il suffit d'itérer sur l'ensemble de données et de saisir les informations qui vous intéressent. Récupérer tous les noms devrait ressembler quelque chose comme ceci:

     List<String> allNames = new ArrayList<String>(); JSONArray cast = jsonResponse.getJSONArray("abridged_cast"); for (int i=0; i<cast.length(); i++) { JSONObject actor = cast.getJSONObject(i); String name = actor.getString("name"); allNames.add(name); } 

    (Tapé directement dans le navigateur, donc pas testé).

    GetJSONArray (attrname) vous obtiendra un tableau de l'objet de ce nom d'attribut donné dans votre cas, ce qui se passe, c'est que pour

     {"abridged_cast":["name": blah...]} ^ its trying to search for a value "characters" 

    Mais vous devez entrer dans le tableau et ensuite faire une recherche pour "caractères"

    essaye ça

     String json="{'abridged_cast':[{'name':'JeffBridges','id':'162655890','characters':['JackPrescott']},{'name':'CharlesGrodin','id':'162662571','characters':['FredWilson']},{'name':'JessicaLange','id':'162653068','characters':['Dwan']},{'name':'JohnRandolph','id':'162691889','characters':['Capt.Ross']},{'name':'ReneAuberjonois','id':'162718328','characters':['Bagley']}]}"; JSONObject jsonResponse; try { ArrayList<String> temp = new ArrayList<String>(); jsonResponse = new JSONObject(json); JSONArray movies = jsonResponse.getJSONArray("abridged_cast"); for(int i=0;i<movies.length();i++){ JSONObject movie = movies.getJSONObject(i); JSONArray characters = movie.getJSONArray("characters"); for(int j=0;j<characters.length();j++){ temp.add(characters.getString(j)); } } Toast.makeText(this, "Json: "+temp, Toast.LENGTH_LONG).show(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

    vérifié 🙂

    Voici une meilleure façon de le faire. J'espère que cela t'aides

     protected void onPostExecute(String result) { Log.v(TAG + " result); if (!result.equals("")) { // Set up variables for API Call ArrayList<String> list = new ArrayList<String>(); try { JSONArray jsonArray = new JSONArray(result); for (int i = 0; i < jsonArray.length(); i++) { list.add(jsonArray.get(i).toString()); }//end for } catch (JSONException e) { Log.e(TAG, "onPostExecute > Try > JSONException => " + e); e.printStackTrace(); } adapter = new ArrayAdapter<String>(ListViewData.this, android.R.layout.simple_list_item_1, android.R.id.text1, list); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // ListView Clicked item index int itemPosition = position; // ListView Clicked item value String itemValue = (String) listView.getItemAtPosition(position); // Show Alert Toast.makeText( ListViewData.this, "Position :" + itemPosition + " ListItem : " + itemValue, Toast.LENGTH_LONG).show(); } }); adapter.notifyDataSetChanged(); ... 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.