gepeppe
19-02-2012, 18:35
Salve, ho questo codice json, da trasformare in oggetto java:
{
"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:
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:
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;
}
}
{
"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:
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:
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;
}
}