Tôi có lớp java sauRàng buộc một Java Class Generic đến một JSON sử dụng JAXB
@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;
}
}
tôi là tạo ra cá thể của nó và marshaling nó để JSON
EnvelopeClass<DataClass> dataClassEnvelopeClass = new EnvelopeClass<DataClass>("1.0", new DataClass("myName"));
Tôi có kết quả tiếp theo:
{"version":"1.0","data":{"@type":"dataClass","name":"myName"}}
Tôi không muốn có thông tin loại loại trong json "@type": "dataClass", nói cách khác tôi muốn có kết quả tiếp theo:
{"version":"1.0","data":{"name":"myName"}}
Chính xác kết quả này tôi có khi EnvelopeClass không có Generics.
Có cách nào để thực hiện việc này không?
Khi tôi thử điều này với các "vanilla" JAXB trong Java6, tôi không nhận được điều đó, tôi nhận được ' 1.0 myName envelopeClass > ', trong đó' xsi: type' là cách generics được cho là thực hiện trong JAXB. –
skaffman