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
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