将实体对象User转换成Xml格式。
实体类User
package com.example.webservice.demo.service.server;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* @author LiHaitao
* @description User:
* @date 2020/1/6 17:51
**/
@XmlRootElement(name = "user")
@XmlType(propOrder = {
"name", "age" }) // 定义xml节点的顺序,属性必须在这
public class User {
public User(){
}
public User(String name, String age) {
this.name = name;
this.age = age;
}
private String name;
private String age;
@XmlElement(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "age")
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
工具类
package com.example.webservice.demo.service.server;
import lombok.extern.slf4j.Slf4j;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.StringWriter;
/**
* @Description:
* @Author: Lihaitao
* @Date: 2020/1/7 17:22
* @UpdateUser:
* @UpdateRemark:
*/
@Slf4j
public class JaxResultUtil {
private static JAXBContext context = null;
private static Marshaller marshaller = null;
static {
try {
context = JAXBContext.newInstance(User.class);
marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
} catch (JAXBException e) {
log.error("JaxResultUtil init exception", e);
}
}
public static <T> String objToXmlString(T obj) throws JAXBException {
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
return writer.toString();
}
}
使用
User lihaitao =new User("lihaitao","18");
System.out.println(JaxResultUtil.objToXmlString(lihaitao));