IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Problème pour récupérer des informations JSON


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème pour récupérer des informations JSON
    Bonjour,

    Tout d'abord je suis débutant en Java donc désolé si mes explications ou mon code n'est pas très clair.

    J'aimerai récupérer le contenu d'un JSON de la forme ci-dessous pour le mettre dans une liste. Malheureusement toutes les tentatives que j'ai essayé ont échouées.

    Dans le Logcat il me met une error de parse (com.android.volley.ParseError: org.json.JSONException: Value [{"id":3,etc...)

    Par ailleurs il me manque encore le code pour afficher dans une liste après.

    Merci à vous pour votre aide

    Voici un extrait du contenu du JSON :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"id":3,"is_recursive":1,"date_creation":null,"entities_id":1,"name":"NOMPC","serial":"5CDXXXX","contact_num":null,"users_id_tech":2,"groups_id_tech":0, etc....
    Mon activité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    public class MenuActivity extends AppCompatActivity {
     
        ImageButton btnpcmenu;
        String a;
        TextView textView2;
        ListView computerlist;
     
        ArrayAdapter computeradapter;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu);
     
            btnpcmenu = findViewById(R.id.btnpcmenu);
            textView2 = findViewById(R.id.textView2);
            computerlist = findViewById(R.id.computerlist);
     
            btnpcmenu.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
     
                    // https://localhost/apirest.php/Computer/?expand_drodpowns=true&session_token=rlkniaf6gqfsnamr1jr0pfhtsk
     
                    // Recuperation du session token
                    a = getIntent().getStringExtra("valeursessiontoken");
                    Log.d("recuperation", a);
     
                    // Récupération de la liste d'ordinateurs
     
                    String url = "https://localhost/apirest.php/Computer/?expand_drodpowns=true&session_token=" + a;
                    Log.d("URL", url);
     
                    List<computerselements> jsonResponses = new ArrayList<>();
     
     
                    RequestQueue requestQueue = Volley.newRequestQueue(MenuActivity.this);
                    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
     
                        @Override
                        public void onResponse(JSONObject response) {
     
                            try {
                                JSONArray jsonArray = new JSONArray(response);
     
                                for (int i = 0; i < jsonArray.length(); i++) {
     
                                    JSONObject object = jsonArray.getJSONObject(i);
                                    computerselements computer = new computerselements();
     
                                    computer.setComputername(object.getString("name"));
     
                                    jsonResponses.add(computer);
     
                                    computeradapter = new ArrayAdapter(MenuActivity.this, android.R.layout.simple_list_item_1,android.R.id.text1,jsonResponses);
                                    computerlist.setAdapter(computeradapter);
     
                                }
     
     
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
     
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Log.d("error", error.toString());
                        }
                    });
                    requestQueue.add(jsonObjectRequest);
    Ma classe computerselements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public class computerselements {
     
        int id;
        String computername;
        String serialnumber;
        String comments;
     
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public String getComputername() {
            return computername;
        }
     
        public void setComputername(String computername) {
            this.computername = computername;
        }
     
        public String getSerialnumber() {
            return serialnumber;
        }
     
        public void setSerialnumber(String serialnumber) {
            this.serialnumber = serialnumber;
        }
     
        public String getComments() {
            return comments;
        }
     
        public void setComments(String comments) {
            this.comments = comments;
        }
     
     
    }

  2. #2
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 630
    Points : 1 029
    Points
    1 029
    Par défaut
    Bonjour,

    Concernant l'erreur renvoyée par le logcat, si vous souhaitez recevoir le résultat sous forme de chaîne, n'utilisez pas le JSONRequest.
    Utilisez la classe Request simple. Votre problème est assez simple: le serveur renvoie un JSONArray avec un seul élément à l'intérieur.
    Un JSONArray n'est pas un JSONObject. C'est pourquoi l'analyse échoue.

    Résolvez ce problème ensuite nous verrons pour la suite.

    Transact.

Discussions similaires

  1. [XL-2010] Problème de code pour récupérer des informations dans un tableur
    Par floflo50100 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2017, 09h21
  2. Script SNMP pour récupérer des information de la MIB
    Par patchiko dans le forum Développement
    Réponses: 4
    Dernier message: 23/05/2011, 18h31
  3. [Débutant] Création d'une boucle pour récupérer des informations
    Par youcef60 dans le forum MATLAB
    Réponses: 15
    Dernier message: 02/03/2010, 22h31
  4. Réponses: 6
    Dernier message: 28/12/2007, 22h34
  5. [LDAP] problème pour récupérer des données
    Par Bizoo dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/04/2007, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo