Importare - Manipolare Json Array

mau90

Nuovo Utente
2 Ago 2019
18
1
3
Salve, ho sviluppato un'app PHP per la registrazione di dati all'interno di un database mysql...
Adesso sto sviluppando un'app similiare su Android Studio e mi serve che questa acquisisca i dati inseriti con l'applicazione PHP (ho già provveduto a "trasformarli" in un array Json attraverso json_encode)...
In sostanza vorrei sapere grossomodo quali sono i passaggi e "l'occorrente" per importare i dati su android studio...

So già di dover abilitare la navigazione internet dal manifest, so già che quasi sicuramente dovrei importare la libreria Volley... ma non so bene come effettuare i passaggi e/o se serva importare anche altre librerie...
 
Puoi usare JSONObject

Ho fatto così, utilizzando anche JSONObject... ho qualche errore dato sicuramente da qualche parentesi di troppo (o in meno)... Credi possa andar bene questo codice per ottenere i dati di cui ho bisogno?

PHP:
    //1. All'interno di una costante memorizziamo l'url del file Json
    private final String URL = "http://localhost/progettoPHP/WebServices/webSrv.php";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //2. Creiamo una RequestQueue, che richiede come pararametro il context
        //questo oggetto si occupa di tutte le operazioni di rete, della lettura e della scrittura sulla cache
        // del parsing e delle reisposte
        RequestQueue queue = Volley.newRequestQueue(this);

        //3. Dovendo effettuare il parsing di un array, ci serve un oggetto di tipo "JsonArrayRequest".
        //Il costruttore di questo richiede vari parametri: GET per prelevare dati; POST per inviarli.
        //Nel nostro caso, dovendo prelevare i dati, sfruttiamo il metodo GET.
        JsonArrayRequest arrayRequest = new JsonArrayRequest(Request.Method.GET, URL,
                new Response.Listener<JSONArray>() {
                    //4. Metodo che attende una rispsota del listner
                    // Se otteniamo la risposta, avremo un array all'interno di un oggetto JSON.
                    // Quindi scansioniamo tutti gli elementi all'interno di un ciclo *
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d("Response: ", response.toString());
                        for (int i = 0; i < response.length(); i++) { //*

                            //5. Per prelevare un oggetto all'interno dell'array sfruttiamo JSONObject
                            //I dati all'interno di questo oggetto possono essere prelevati tramite gli appositi getter:
                            //Queste istruzioni possono generare eccezioni, quindi vanno inserite all'interno di un blocco try-catch
                            try {

                                JSONObject object = response.getJSONObject(i);
                                Log.d("Items: ", object.getString("username") + " / " + object.getString("password"));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }
                    }
                },
                new Response.ErrorListener() {
                    //6. Metodo che attende e gestisce eventuali errori
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        VolleyLog.d("Error: ", error.getMessage());

                    }
                });
        //7.
        queue.add(arrayRequest);
 

Discussioni simili