PDA

View Full Version : [JAVA]JSON: problema con ereditarieta


duke2
12-12-2010, 11:34
Salve a tutti,
ho un problema nella serializzazione di oggetti Java in JSON.
Dato il codice di seguito il risultato ìe che nell'output l'oggetto PanelModule non viene serializato a meno che non specificatamente dichiarato
nella classe Config come private ArrayList<PanelModule>...
Il mio output JSON deve essere legato alla classe ("Panel":{}, "List":{}, "Menu" :{}ecc) ma la mia classe Config
deve rimanere generica e accettare tutti i moduli che estendono Module.

public class Config{
private ArrayList<Module> modules;
public void addModules(Module module) {
modules.add(module);
}
}
}

public class Module {
private String name ="module";
public ArrayList<Mod> mods;
public Module() {}
public void addMod(Mod mod) {
}
}

public class PanelModule extends Module{
private String name ="panel";
public ArrayList<Mod> panel;

public PanelModule() {}
@Override
public void addMod(Mod mod) {
panel.add(mod);
}
}

Config config=new Config();
Mod mod = new Mod();
mod.addRequires("...");

PanelModule panelModule = new PanelModule();
panelModule.addMod(mod);
config.addModules(panelModule);

Gson gson = new Gson();
String json = gson.toJson(config);

Attualmente ho provato Google-Gson ma non ho pregiudizzi, qualsiasi libreria alternativa va bene