Autore Topic: lettura da Json  (Letto 530 volte)

Offline Tk.3

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Windows 7
lettura da Json
« il: 19 Maggio 2011, 17:27:12 CEST »
0
Salve ragazzi, ho un piccolo problema nel mio progetto.
In pratica ho inserito dei dati su un database (altervista.org).

Ogni utente inserisce dei dati, quindi ora sono al punto di doverli stampare come LISTVIEW.
Ma questo dopo aver risolto un problema.
Mi spiego: i dati da visualizzare sono 3, tutti stringhe.
Il problema è che uno è la località: ME LA PASSA CORRETTAMENTE; l'altro un titolo: LO PASSA CORRETTAMENTE;
infine ho un piccolo testo che l'utente ha precedentemente inserito (sempre meno di 250 caratteri).
Strano ma vero, mi restituisce sempre "null" (in realtà spesso fa così, ma raramente stampa il commento creato).

Pensavo fosse un problema nella gestione del database: inizialmente gestivo questa breve descrizione come TEXT.
Poi ho impostato come LONGTEXT. Infine come CHAR(250). Ma niente, non vuol saperne di stamparmi il dato.
Sto davvero impazzendo per questa cosa. Il bello è che il LOGCAT non segnala errori, e il dato in questione lo gestisco
esattamente come gestisco gli altri 2. Inoltre sul database leggo proprio quello che ho inserito, quindi il problema
non risiede nel possibile inserimento errato, ma nella errata lettura del dato.
Spero di essere stato chiaro.
Posto un pò di codice:

Questo mi crea la HashMap di ogni singolo elemento (viene gestito in un ciclo for che assegna i valori in base a come li legge dal DB).
Codice (Java): [Seleziona]
 
[...]
try{
              JSONArray jArray = new JSONArray(result);
              for(int i=0;i<jArray.length();i++){
                      JSONObject json_data = jArray.getJSONObject(i);
                      String indirizzo = json_data.getString("indirizzo");
                      String descrizione = json_data.getString("descrizione"); //associo i dati presi dal Json a delle variabili STRING
                      String categoria = json_data.getString("categoria");

                      HashMap<String,Object> listMap=new HashMap<String, Object>();
                          listMap.put("categoria", categoria);
                          listMap.put("luogo", indirizzo);
                          listMap.put("descrizione", descrizione);
                          data.add(listMap);

[...]

Il problema è che, anche prima di creare la HashMap (che funziona correttamente), se eseguo un Toast

Codice (Java): [Seleziona]
Toast.makeText(getBaseContext(),"DATI:\n"+json_data.getString("descrizione"), Toast.LENGTH_SHORT).show();
o semplicemente stampando "descrizione" invece di "json_data.getString("descrizione")" mi stampa NULL.
E' assurdo, è 4-5 giorni che ci perdo la testa.
Dove sbaglio?

Saluti, Tk.3

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:lettura da Json
« Risposta #1 il: 19 Maggio 2011, 19:19:02 CEST »
0
il json che ricevi contiene esattamente quei dati? prova a usare un browser per ottenere quel json e vedi com'è fatto
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia