Autore Topic: json con molti sotto-valori  (Letto 516 volte)

Offline gepeppe

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
  • Sistema operativo:
    ubuntu
json con molti sotto-valori
« il: 19 Febbraio 2012, 18:09:34 CET »
0
Salve, ho questo codice json, da trasformare in oggetto java:
Codice (Java): [Seleziona]
{
 "term" : {
   "PrincipalTranslations" : {
      "zero" : {
             termine:"casa",
             traduzione:"home"
            }
      "uno" :{
             termine:"testa",
             traduzione:"head"
           }
       "due" :{
             termine:"dito",
             traduzione:"finger"
           }
   }
 }
}

Sto usando Gson.
Per ora ho creato la classe zero, uno, due.... ma se il numero di questi sotto elementi di "PrincipalTranslations" non fosse noto a priori?? Cioè posso avere sia 3 classi come nell'esempio, sia 15, 20...e visto che sostanzialmente i sotto elementi di "PrincipalTranslations" sono tutti uguali, si potrebbe usare una sola classe per tutti... però non saprei proprio come fare!!

Per adesso cmq tramite questo codice:
Codice (Java): [Seleziona]
  FileReader reader = new FileReader("/home/peppe/test_json");
  Gson gson = new GsonBuilder().create();
 
  Item p = gson.fromJson(reader, Item.class);
           
  System.out.print(p.getTERM().getPrincipalTranslations().getZero().gettermine());

Mi stampo correttamente il valore "casa".

Ps. Magari può essere utile anche ad altri vedere l'implementazione delle classi:
Codice (Java): [Seleziona]
public class Item {    
        private term term;

        public term getTERM() {
                return term;
        }  
}

public class term {
       private PrincipalTranslations PrincipalTranslations;

        public PrincipalTranslations getPrincipalTranslations() {
                return PrincipalTranslations;
        }      
}

public class PrincipalTranslations {
        private zero zero;
        private uno uno;

        public zero getZero() {
                return zero;
        }

        public uno getuno() {
                return uno;
        }
}

public class zero {
        private String termine;

        public String gettermine() {
                return termine;
        }
}

public class uno {
        private String termine;

        public String gettermine() {
                return termine;
        }
}
« Ultima modifica: 20 Febbraio 2012, 11:39:59 CET da gepeppe »

Offline gepeppe

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
  • Sistema operativo:
    ubuntu
Re:json con molti sotto-valori
« Risposta #1 il: 20 Febbraio 2012, 11:40:32 CET »
0
ho modificato il primo post...avevo commesso degli errori, e ora ho formulato meglio il problema

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:json con molti sotto-valori
« Risposta #2 il: 20 Febbraio 2012, 11:48:52 CET »
0
se è un file di traduzioni puoi ad esempio fare una classe Translation
che contiene lingua di start e lingua di from

poi puoi fare una hashMap in cui hai chiave e valore i due campi stringa.
facendo cosi ad ogni parola in italiano ne hai una in inglese (qui il problema viene ad esempio su pesca).
Per intanto può essere una prova per capire meglio il json cmq...

Il problema di quel json è che principal translation dovrebbe avere una lista, altrimenti diventa scomodo.
Cioè tu dovresti prenderti i figli di translation JSONObject | Android Developers()
poi per ogni elemento dovresti fare Translation.getJSONObject() e da li prendere i due figli (termine e traduzione) e buttarli nell'hashMap
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

Offline gepeppe

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
  • Sistema operativo:
    ubuntu
Re:json con molti sotto-valori
« Risposta #3 il: 20 Febbraio 2012, 12:03:35 CET »
0
il problema è che il testo json che ho scritto è una versione semplificata di quello che ho... diciamo che, capita questa struttura, posso usarla su quello completo (per darti un'idea di cosa contiene, vedi questo link: http://dl.dropbox.com/u/5143875/esempio_json.txt )

Cmq non ho ben capito come implementare quello che hai scritto :)