MOXy JSON支持
我正在使用EclipseLink的MOXy作为我的RESTEasy项目中的JAXB实现.MOXy的高级功能是由@XmlDiscriminatorNode和amp;等注释带来的。价值帮助了我很多。一切正常,除了一件事:JSON支持。我正在使用RESTEasy的JettisonMappedContext但不幸的是,在编组后,我的JSON中只有实例变量字段属于抽象超类。
@XmlRootElement
@XmlDiscriminatorNode("@type")
public abstract class Entity {
public Entity(){}
public Entity(String id){
this.id = id;
}
private String id;
@XmlElement
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
子类:
@XmlRootElement
@XmlDiscriminatorValue("photo")
public class Photo extends Entity{
private String thumbnail;
public Photo(){}
public Photo(String id) {
super(id);
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
@XmlElement(name="thumbnail")
public String getThumbnail() {
return thumbnail;
}
}
编组后的XML:
<object type="photo">
<id>photoId423423</id>
<thumbnail>http://dsadasadas.dsadas</thumbnail>
</object>
编组后的JSON:
"object":{"id":"photoId423423"}
有没有其他方法来实现这一目标?
谢谢。
没有找到相关结果
已邀请:
1 个回复
仇聘发栖
如果没有此条目,将使用引用实现,并且EclipseLink JAXB(MOXy)扩展将不会出现在生成的XML / JSON中。 使用我博客中的@DescrimatorNode示例,生成的XML将是:
当我编组利用Jettison时:
然后我得到以下JSON:
有关JAXB和JSON的更多信息,请参阅: http://bdoughan.blogspot.com/2011/04/jaxb-and-json-via-jettison.html