Ich habe folgende Java-KlasseBindung eine generische Java-Klasse zu einem JSON JAXB mit
@XmlRootElement
@XmlSeeAlso(DataClass.class)
public static class EnvelopeClass<T> {
@XmlElement
public String version;
@XmlElement
public T data;
EnvelopeClass() {
}
EnvelopeClass(String version, T data) {
this.version = version;
this.data = data;
}
}
@XmlRootElement
public static class DataClass {
@XmlElement
public String name;
DataClass() {
}
DataClass(String name) {
this.name = name;
}
}
ich seine Instanz bin zu schaffen und es
EnvelopeClass<DataClass> dataClassEnvelopeClass = new EnvelopeClass<DataClass>("1.0", new DataClass("myName"));
ich als nächstes Ergebnis JSon Marshalling haben:
{"version":"1.0","data":{"@type":"dataClass","name":"myName"}}
ich will nicht Typ Typinformationen in den json "@type" haben: "Dataclass", mit anderen Worten möchte ich als nächstes Ergebnis haben:
{"version":"1.0","data":{"name":"myName"}}
Genau dieses Ergebnis habe ich, wenn EnvelopeClass Generics nicht haben.
Gibt es eine Möglichkeit, dies zu tun?
Als ich dies mit der "Vanille" JAXB in Java6 versuchen, das tue ich nicht bekomme ich das, bekomme ich ' 1.0 meinName envelopeClass > ', wo der' xsi: type' ist, wie Generika in JAXB gemacht werden sollen. –
skaffman