Autore Topic: Parsing di una stringa JSON e come passare i dati  (Letto 848 volte)

Offline Alhazred

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus Zenfone 2 Laser ZE550KL
  • Sistema operativo:
    Windows 10 Home 64bit
Parsing di una stringa JSON e come passare i dati
« il: 27 Febbraio 2012, 17:02:46 CET »
0
Invio una richiesta ad un mio script PHP che mi risponde con una stringa JSON di questo tipo:
Codice: [Seleziona]
{"routes":
        {
         "route": [
                {
                        "summary":  {
                                        "leaveat": "11:58",
                                        "arriveby": "12:23",
                                        "duration": "25 mins",
                                        "transfers": 1,
                                        "fareA": "1euro",
                                        "fareC": "0.8euro"
                                },
                        "sections": [
                                        {"section1": "Station1/11:58-11:59"},
                                        {"section2": "Station2/12:06-12:23"},
                                        {"section3": "Station3/x"}
                                ]
                },
                {
                        "summary":  {
                                        "leaveat": "12:03",
                                        "arriveby": "12:43",
                                        "duration": "40 mins",
                                        "transfers": 2,
                                        "fareA": "1.4euro",
                                        "fareC": "1euro"
                                },
                        "sections": [
                                        {"section1": "Station1/12:03-12:20"},
                                        {"section2": "Station2/12:21-12:25"},
                                        {"section3": "Station3/12:28-12:32"},
                                        {"section4": "Station4/x"}
                                ]
                }
                ]
        }
}
Sono alle prime armi ed ho bisogno di mettere in una listview, su ogni riga, i dati "duration", "transfers", "fareA" e "fareC".
La listview l'ho creata, testata con dei dati hardcoded e funziona.
Il mio problema è interpretare la stringa JSON in modo da popolare le righe della listview in modo dinamico.

Per ora ho questo
Codice: [Seleziona]
jObject = new JSONObject(result); //result è la stringa JSON
JSONObject routeObject = jObject.getJSONObject("route");

JSONObject summaryObject = routeObject.getJSONObject("summary"); //questo dovrebbe essere un oggetto contenente tutti i "route"
JSONObject sectionsObject = routeObject.getJSONObject("sections"); //questo dovrebbe essere un oggetto contenente tutti i "sections"
Sono corrette le considerazioni riguardanti i commenti che ho messo?
Come devo procedere ora?

Quello che penso io è che devo ora convertire i 2 JSONObject in array Java e poi leggere i dati da lì, ma come faccio?

Offline Alhazred

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus Zenfone 2 Laser ZE550KL
  • Sistema operativo:
    Windows 10 Home 64bit
Re:Parsing di una stringa JSON e come passare i dati
« Risposta #1 il: 28 Febbraio 2012, 01:39:23 CET »
0
Ok, forse non è il modo migliore, ma alla fine ci sono riuscito così
Codice: [Seleziona]
jObject = new JSONObject(result);
JSONArray routeArray = jObject.getJSONArray("route");

for(int i=0;i<routeArray.length();i++) {
        String durationJS = routeArray.getJSONObject(i).getJSONObject("summary").getString("duration");
        int transfersJS = routeArray.getJSONObject(i).getJSONObject("summary").getInt("transfers");
        String fareAJS = routeArray.getJSONObject(i).getJSONObject("summary").getString("fareA");
        String fareCJS = routeArray.getJSONObject(i).getJSONObject("summary").getString("fareC");
        String fareJS = fareAJS+"/"+fareCJS;
}