XML、JAXB(嵌套类等)的复杂序列化
“好吧,那么。你可能已经猜到了,这还不是全部。”“现在我将向您介绍 JAXB 的其他几个方面。但正如我们对 JSON 所做的那样,我们将从集合开始。”“当使用 JAXB 反序列化集合时,也不确定将哪个特定集合(ArrayList、LinkedList、Vector 等)用于 List 变量。这个问题的答案同样由注释提供。”“这一切都非常简单。如果在其注释中未指定集合类型,那么 JAXB 将尝试使用其类型选择最合适的集合。对于 List,这将是 ArrayList;对于 Map,它将是 HashMap,等等”“实际上,这里的问题比 JSON 少得多,因为每个类都有一个唯一的标签,您可以使用标签来指定确切的类。”“例如,如果您需要反序列化一组继承了共同祖先的元素,您可以使用@XmlAny:注释”从 XML 转换对象public static voidmain(String[] args) throws JAXBException { String xmldata = "zoocat/cat/dog/cat//zoo"; StringReader reader = newStringReader(xmldata); JAXBContext context =JAXBContext.newInstance(Cat.class, Zoo.class, Dog.class); Unmarshaller unmarshaller = context.createUnmarshaller(); Cat cat = (Cat) unmarshaller.unmarshal(reader); }