CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: bluemask con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

Più parsing nello stesso file PHP

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jul 2011
    Messaggi
    38
    Smartphone
    Samsung Galaxy S3 LTE GT-i9305

    Ringraziamenti
    6
    Ringraziato 1 volta in 1 Post
    Predefinito

    Più parsing nello stesso file PHP

    Salve gente,

    Collegandomi più volte allo stesso file PHP contenente tutte le query che devo effettuare succede che ogni volta che eseguo una query diversa del file PHP il risultato che ottengo è ovviamente sempre diverso.
    Ho creato una tabella in mysql contentente usrname e psw.
    Dal file PHP eseguo:
    una query che mi restituisce l'usrname
    una query che mi restituisce la psw

    Ora, avendo creato una funzione che funge da Parsing Json come faccio a fargli capire che una volta mi dovrà restituire il parsing dell'username restituito così: [{"usrname":"user1"}] e una volta il parsing della password restituito così: [{"psw":"psw1"}]

    nel layout ho 2 bottoni:
    1) si connette al PHP, esegue la QUERY e restituisce usrname passando dalla funzione di Parse
    2) si connette al PHP, esegue la QUERY e restituisce psw passando dalla funzione di Parse

    la funzione è questa:
    x
     
    1
    private String parse(String s) {
    2
            try {
    3
                JSONArray array = new JSONArray(s);
    4
    5
                for (int i = 0; i < array.length(); i++) {
    6
                    jobj = array.getJSONObject(i);
    7
                }
    8
    9
                user = jobj.getString("usrname");  //se clicco sul bottone 2 da errore questa riga
    10
                paswd = jobj.getString("psw"); //se clicco sul bottone 1 da errore questa riga
    11
    12
                return paswd;
    13
            } catch (JSONException e) {
    14
                Log.e("Err", e.toString());
    15
                return null;
    16
            }
    17
        }


    se clicco sul bottone 1 da errore
    codice:
    08-23 12:48:22.459: ERROR/Err(1129): org.json.JSONException: No value for psw
    Ovvio perchè quando il debug passa dalla funzione "parse" dal mio codice si aspetta di trovare un JsonObject che si chiami psw, ma avendo eseguito la query che da questo risultato: [{"usrname":"user1"}] non può trovarlo.

    se clicco sul bottone 2 da quindi quest altro errore
    codice:
    08-23 12:48:22.459: ERROR/Err(1129): org.json.JSONException: No value for usrname
    Qualcuno sa come sistemare la funzione per far si che non esca più l'errore?

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Jul 2011
    Messaggi
    38
    Smartphone
    Samsung Galaxy S3 LTE GT-i9305

    Ringraziamenti
    6
    Ringraziato 1 volta in 1 Post
    Predefinito

    Ho risolto così:

    20
     
    1
    private String parse(String s) {
    2
            try {
    3
                JSONArray array = new JSONArray(s);
    4
    5
                for (int i = 0; i < array.length(); i++) {
    6
                    jobj = array.getJSONObject(i);
    7
                }
    8
                user = jobj.optString("usrname");           
    9
                paswd = jobj.optString("psw");
    10
    11
                if (user != null)
    12
                    return user;
    13
                if (paswd != null)
    14
                    return paswd;
    15
    16
            } catch (JSONException e) {
    17
                Log.e("Err", e.toString());
    18
                return null;
    19
            }
    20
        }


    Sostituendo getString con optString così che cattura in automatico i NULL delle stringhe inesistenti

    Il for l'ho lasciato in caso la SELECT dal file PHP risulti composta da più di un attributo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy