品牌型网站制,头条新闻 最新消息条,设计网站设计目标,做列表的网站文章目录 使用JAXB将Java对象转xml1. 要求生成的xml2. Java对象3. 封装的工具类4. 测试 使用JAXB将Java对象转xml
1. 要求生成的xml
?xml version1.0 encodingUTF-8 ?
rootresult statussuccess msg成功?xml version1.0 encodingUTF-8 ?
rootresult statussuccess msg成功/
/root2. Java对象
RootVO.java
Data
XmlRootElement(name root)
XmlAccessorType(XmlAccessType.FIELD)
public class RootVO {XmlElement(name result)public ResultVO result;DataNoArgsConstructorAllArgsConstructorXmlRootElement(name result)XmlAccessorType(XmlAccessType.FIELD)public static class ResultVO{XmlAttribute(name status)public String status;XmlAttribute(name msg)public String msg;}
}3. 封装的工具类
XmlUtil.java
public class XmlUtil {public static String objToXml(Object obj) {try {//创建JAXB对象用于映射java类和xmlJAXBContext context JAXBContext.newInstance(obj.getClass());//创建Marshaller对象用于将java对象序列化为xmlMarshaller marshaller context.createMarshaller();//设置编码格式marshaller.setProperty(Marshaller.JAXB_ENCODING, UTF-8);//格式化生成xmlmarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();//将java对象序列化为xmlmarshaller.marshal(obj, byteArrayOutputStream);return byteArrayOutputStream.toString(UTF-8);} catch (JAXBException | UnsupportedEncodingException e) {e.printStackTrace();}return null;}
}4. 测试 public static void main(String[] args) {RootVO rootVO new RootVO();RootVO.ResultVO resultVO new RootVO.ResultVO(success,成功);rootVO.setResult(resultVO);String xmlContent XmlUtil.objToXml(rootVO);System.out.println(xmlContent);}输出结果
?xml version1.0 encodingUTF-8 standaloneyes?
rootresult statussuccess msg成功/
/root取掉standalone public static void main(String[] args) {RootVO rootVO new RootVO();RootVO.ResultVO resultVO new RootVO.ResultVO(success,成功);rootVO.setResult(resultVO);String xmlContent XmlUtil.objToXml(rootVO);System.out.println(xmlContent.replace(standalone\yes\, ));}输出结果
?xml version1.0 encodingUTF-8 ?
rootresult statussuccess msg成功/
/root