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...
 

mau90

Nuovo Utente
2 Ago 2019
18
1
3
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);