對象轉xml or xml轉對象(XStream and jaxb)

需要的jar包:xstream-1.4.2.jar

maven pom 依賴:

<dependency>  
      <groupId>com.thoughtworks.xstream</groupId>  
      <artifactId>xstream</artifactId>  
      <version>1.4.2</version>  
 </dependency>

demo如下:

package com.csair.test.xstream;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.io.xml.StaxDriver;

/**
 * test XStream
 * @author ppt
 *
 */
public class TestXStream {

 public static void main(String[] args) {
  Person person = new Person();
  person.setId(1);
  person.setPassword("ppt");
  person.setUsername("pengpanting");
//  XStream xStream = new XStream();
//  XStream xStream = new XStream(new DomDriver());//dom解析xml
  XStream xStream = new XStream(new StaxDriver());//stax解析xml
//  xStream.alias("person", Person.class);
  String str = xStream.toXML(person);
  System.out.println(str);
  
  Person per = (Person)xStream.fromXML(str);
  System.out.println(per.toString());

 }
}

@XStreamAlias("person")
class Person {
 private int id;
 private String username;
 private String password;
 
 @Override
 public String toString() {
  return "Person [id=" + id + ", username=" + username + ", password="
    + password + "]";
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
}

 

二、jaxb方式

<dependency>
  <groupId>javax.xml</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.1</version>
 </dependency>

/**
  * 對象轉xml
  * @return
  * @throws Exception
  */
 private static String getXml() throws Exception {
  UserDTO dto = new UserDTO();
  dto.setId(12);
  dto.setPassword("ppt");
  dto.setUsername("ppt");
  JAXBContext jaxb = JAXBContext.newInstance(UserDTO.class);
  Marshaller marshaller = jaxb.createMarshaller();
  StringWriter sw = new StringWriter();
  marshaller.marshal(dto, sw);
  return sw.toString();
 }
 /**
  * xml轉對象
  * @param xml
  * @return
  * @throws Exception
  */
 private static UserDTO getObject(String xml) throws Exception {
  JAXBContext jaxb = JAXBContext.newInstance(UserDTO.class);
  Unmarshaller unmarshaller = jaxb.createUnmarshaller();
  UserDTO dto = (UserDTO)unmarshaller.unmarshal(new StringReader(xml));
  return dto;
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章