非常感谢孙浩老师。
Coder.java
package cn.lichen.bean;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Coder {
private int coderId;
private String name;
private String position;
private Item item;
public Coder() {
// TODO Auto-generated constructor stub
}
public Coder(int coderId, String name, String position, Item item) {
super();
this.coderId = coderId;
this.name = name;
this.position = position;
this.item = item;
}
public int getCoderId() {
return coderId;
}
public String getName() {
return name;
}
public String getPosition() {
return position;
}
public void setCoderId(int coderId) {
this.coderId = coderId;
}
public void setName(String name) {
this.name = name;
}
public void setPosition(String position) {
this.position = position;
}
public Item getItem() {
return item;
}
public void setItem(Item item) {
this.item = item;
}
}
Item.java
package cn.lichen.bean;
public class Item {
private int itemId;
private String name;
public Item() {
// TODO Auto-generated constructor stub
}
public Item(int itemId, String name) {
super();
this.itemId = itemId;
this.name = name;
}
public int getItemId() {
return itemId;
}
public String getName() {
return name;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public void setName(String name) {
this.name = name;
}
}
Java转为Xml:
@Test
public void test1() {
try {
JAXBContext context = JAXBContext.newInstance(Coder.class);
Marshaller marshaller = context.createMarshaller();
Coder coder = new Coder(1, "lichen", "boss", new Item(1, "it"));
marshaller.marshal(coder, System.out);
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Xml转为Java:
@Test
public void test2() {
try {
String xml="<?xml version='1.0' encoding='UTF-8' standalone='yes'?><coder><coderId>1</coderId><item><itemId>1</itemId><name>it</name></item><name>lichen</name><position>boss</position></coder>";
JAXBContext context = JAXBContext.newInstance(Coder.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Coder coder = (Coder) unmarshaller.unmarshal(new StringReader(xml));
System.out.println(coder.getName()+"\t\t"+coder.getItem().getName());
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}