Autore Topic: JSONObject e annessi  (Letto 201 volte)

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
JSONObject e annessi
« il: 27 Ottobre 2016, 10:56:47 CEST »
0
salve ragazzi premetto che non sono sicuro sia la sezione giusta,spero non mi lincerete:
Starei iniziando a vedere un po il WebService e mi sono imbattuto nel JSON...
In Pratica ho una chiamata tramite un URL che mi riporta:
{"status":true,"message":"ok","category":[{"id":1,"name":"Turisti"},{"id":2,"name":"Studenti"},{"id":3,"name":"Residenti"},{"id":4,"name":"Business Man"}]}
Questo..
adesso nella mia APP avrei bisogno di creare un Array di oggetti della Classe Category che ha due parametri Id e Name nel caso mio...sapreste darmi qualche dritta a riguardo?? vi ringrazio tantissimo per la vostra disponiblità.

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #1 il: 27 Ottobre 2016, 11:12:24 CEST »
0
Potresti usare un JSONObject

Codice (Java): [Seleziona]
JSONObject myJson = new JSONObject(...);

myJson.optString("id");
myJson.optString("name"));

una cosa del genere e poi mettere tutto in una lista chiave, valore

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:JSONObject e annessi
« Risposta #2 il: 27 Ottobre 2016, 11:18:41 CEST »
0
String stringaDalWS= buffer.toString();
                JSONObject aba = new JSONObject(stringaDalWS);
                JSONArray gugu= aba.getJSONArray("category");
                ArrayList<Category> categories;
                JSONObject myJson = new JSONObject();
                myJson.optString("id");
                myJson.optString("name");

                JSONObject gege  = gugu.getJSONObject(0);
                JSONObject gege1 = gugu.getJSONObject(1);
                JSONObject gege2 = gugu.getJSONObject(2);
                JSONObject gege3 = gugu.getJSONObject(3);
                String categoryname = gege.getString("name");
                int iD  = gege.getInt("id");

                return buffer.toString();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            } finally {
                if (connection != null) {
                    connection.disconnect();
                }
                try {
                    if (reader != null) {
                        reader.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
            return null;
        }

protected void onPostExecute(String result) {
            super.onPostExecute(result);
            tvData.setText(result);
        }
    }
}
Questo è quello che al momento ho nel codice: in pratica faccio la chiamata e ricevo quella risposta..quell'URL che ho postato prima,adesso ho bisogno di fare un Array di oggetti Category con solo due parametri ,siccome sono nuovo nella materia potreste/i aiutarmi passo passo? scusa il disturbo

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #3 il: 27 Ottobre 2016, 11:23:48 CEST »
0
Hai praticamente fatto tutto.
Immagino che il tuo oggetto Category abbia un costruttore con due parametri id e nome a questo punto farai per ogni oggetto JSON
Codice (Java): [Seleziona]
Category myCategory = new Category(id, name);
questo oggetto lo aggiungerai all'array categories

Spero di essermi spiegato bene

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:JSONObject e annessi
« Risposta #4 il: 27 Ottobre 2016, 11:27:20 CEST »
0
ublic class Category {
    int iD;
    String name;


   public Category(JSONObject jsonObject) {

        //{"id":1,"name":"Turisti"}
       try {
           this.iD = jsonObject.getInt("id");
           this.name = jsonObject.getString("name");
       } catch (JSONException e) {
           e.printStackTrace();
       }
    }

    public Category(int h, String name) {
       this.iD =h;
        this.name = name;

    }

    public int getiD() {
        return iD;
    }

    public void setiD(int iD) {
        this.iD = iD;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
esatto il costruttore category è così..quindi scusa l'ignoranza che mi manca da fare? :/

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #5 il: 27 Ottobre 2016, 11:31:28 CEST »
0
Tu farai:

Codice (Java): [Seleziona]
Category myCategory = new Category(gege);
Category myCategory1 = new Category(gege1);

....ecc

più bello magari se lo fai con un ciclo for ma comunque il risultato non cambia.
E poi aggiungi i tuoi oggetti all'array

Codice (Java): [Seleziona]
categories.add(myCategory);
categories.add(myCategory1);

...ecc

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:JSONObject e annessi
« Risposta #6 il: 27 Ottobre 2016, 11:50:07 CEST »
0
Ti ringrazio tantissimo anche perchè mi hai schiarito e non poco le idee,un ultima cosa in quale array e sotto quale rigo devo settare mycategories.add.. potresti linkarmi il rigo? perchè sono andato in pappa proprio a questo punto hahahaha

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #7 il: 27 Ottobre 2016, 11:58:32 CEST »
0
Dopo che istanzi gli oggetti myCategory, myCategory1 ecc...
puoi aggiungerli all'Array:

Codice (Java): [Seleziona]
categories.add(myCategory);
categories.add(myCategory1);

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:JSONObject e annessi
« Risposta #8 il: 27 Ottobre 2016, 12:12:51 CEST »
0
mi sai dire perchè quando eseguo in debug mi da :
 ArrayList<Category> categories = new ArrayList<>(); categories: size=0 ?
dove sbaglio?

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #9 il: 27 Ottobre 2016, 12:17:33 CEST »
0
perchè fino a quando non  aggiungi oggetti e la instanzi solo la lunghezza dell'array(size) è 0

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:JSONObject e annessi
« Risposta #10 il: 27 Ottobre 2016, 12:19:47 CEST »
0
e in che modo lo posso fare? puoi farmi un esempio?

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #11 il: 27 Ottobre 2016, 12:24:37 CEST »
0
Aspetta inizio a perdermi. Allora tu quando fai:

Codice (Java): [Seleziona]
ArrayList<Category> categories = new ArrayList<>();
instanzi un array che conterrà oggetti Category ma in questo momento l'array è vuoto. Tu con questa riga di codice dici solo che hai un oggetto che conterrà degli elementi category.

Quando poi fai

Codice (Java): [Seleziona]
categories.add(myCategory);
categories.add(myCategory1);
...

a questo punto il tuo array avrà size n con n uguale al numero di elementi che hai aggiunto.

Spero di essermi riuscito a spiegare in modo chiaro

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:JSONObject e annessi
« Risposta #12 il: 27 Ottobre 2016, 12:30:00 CEST »
0
perfetto, a questo punto mi trovo in questa situazione:
 ArrayList<Category> categories = new ArrayList<>();

                JSONObject gege  = gugu.getJSONObject(0);
                Category myCategory  = new Category(gege);
                categories.add(myCategory);

                JSONObject gege1 = gugu.getJSONObject(1);
                Category myCategory1 = new Category(gege1);
                categories.add(myCategory1);

                JSONObject gege2 = gugu.getJSONObject(2);
                Category myCategory2 = new Category(gege2);
                categories.add(myCategory2);

                JSONObject gege3 = gugu.getJSONObject(3);
                Category myCategory3 = new Category(gege3);
                categories.add(myCategory3);

                String categoryname  = gege.getString("name");
                int iD  = gege.getInt("id");
come faccio a instanziare,oppure non so a dar valore al mio array? scusa se ti sto facendo perdere tempo..

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:JSONObject e annessi
« Risposta #13 il: 27 Ottobre 2016, 12:39:42 CEST »
0
Non c'è problema ma non ho capito la domanda. Dopo che hai fatto il codice che mi hai postato il tuo array contiene 4 elementi Category