JSON und Interface

internet

Top Contributor
Hallo,

ich habe mit Json noch nicht wirklich viel gemacht.

Ich möchte gerne ein Interface haben, es scheint aber so, dass genau das zum Problem macht...

Java:
public class GalleryTemplateGeneral {
    private GalleryTemplateInterface galleryTemplateInterface;

Java:
public interface GalleryTemplateInterface {

}

Java:
public class Template1 implements GalleryTemplateInterface {

    private GeneralSetting generalSetting = new GeneralSetting();
    ....

Wenn ich den String in ein Json - Objekt konvertiere, bekomme ich diese Meldung:
Java:
                    Gson gson = new Gson();
                    GalleryTemplateGeneral galleryTemplateGeneral = gson.fromJson(picGalleryDesignSetting.getJsonCode(),
                            GalleryTemplateGeneral.class);

Unable to invoke no-args constructor for interface myapp.template.GalleryTemplateInterface. Registering an InstanceCreator with Gson for this type may fix this problem.

Das Speichern des String vom Objekt mache ich so:
Java:
Gson gsonBuilder = new GsonBuilder().create();
String jsonFromPojo = gsonBuilder.toJson(picGalleryDesignSetting.getGalleryTemplateGeneral());
picGalleryDesignSetting.setJsonCode(jsonFromPojo);

In XML hatte ich hierfür Annotationen:
Java:
    @XmlElements({
            @XmlElement(name = "MyClass1", type = MyClass1.class),
            @XmlElement(name = "MyClass2", type = MyClass2.class),
    })
    private MyInterface component;

Geht sowas auch in JSON?


Kann hier jemand helfen?
 
Zuletzt bearbeitet:
Danke... Aber geht das auch irgendwie über Annotationen?
Ansonsten wenn der Aufwand hier zu groß ist, würde ich einfach wieder zu XML switchen....
 
Bei gson kenne ich sowas erst einmal nicht, aber evtl. bietet es sowas auch.

Jackson ist ja bekannt von XML Serialisierungen und kann auch JSON. Und da wird wohl der Weg mit Annotations gegangen:

Also evtl. wäre dann ein Wechsel von gson zu jackson auch eine Alternative?

(Das sind jetzt Dinge außerhalb meiner praktischen Erfahrung. Sprich: Diese Annotations habe ich nie verwendet und es kann durchaus sein, dass gson da auch Dinge hat, die ich nur nicht kenne.)
 

Neue Themen


Zurück
Oben