/** * 反序列化指定的XML为对应Java类 * * @param xml * @param clazz * @return * @throws JAXBException */ public Object parse(String xml, Class<?> clazz) throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(clazz); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); InputStream inputStream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); return jaxbUnmarshaller.unmarshal(inputStream); } /** * 序列化指定Java对象为XML字符串 * * @param object * @param clazz * @return * @throws JAXBException */ public String toXML(Object object, Class<?> clazz) throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(clazz); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true); StringWriter writer = new StringWriter(); marshaller.marshal(object, writer); return writer.toString(); }
序列化和反序列化通用方法
最新推荐文章于 2024-10-04 17:46:34 发布
这篇博客详细介绍了如何使用Java的JAXB库进行XML与Java对象之间的序列化和反序列化操作,包括创建JAXBContext,使用Unmarshaller和Marshaller进行转换,并设置了格式化输出和XML片段的生成。
摘要由CSDN通过智能技术生成