JAXB使用
来源:互联网 发布:ubuntu 安装skype 编辑:程序博客网 时间:2024/06/02 02:09
使用jaxb,可以简单的在java对象和xml之间的转换,具体参考javaAPI文档里面的软件包 javax.xml.bind。
需要了解三个类:JAXBContext,Unmarshaller,Marshaller。
import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class Student { private String name; private String gender; private int age; public Student(String name, String gender, int age) { super(); this.name = name; this.gender = gender; this.age = age; } public Student() { super(); // TODO Auto-generated constructor stub } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student [name=" + name + ", gender=" + gender + ", age=" + age + "]"; }}
import java.util.List;import javax.xml.bind.annotation.XmlAttribute;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name= "studnets")public class Lstudent { private List<Student> students; private String name ; public Lstudent(){ } @XmlAttribute public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; }}
import javax.xml.bind.annotation.XmlAttribute;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name ="AA")public class Tw { private String aString; private String bString; private String cString; public Tw() { } public Tw(String aString, String bString, String cString) { super(); this.aString = aString; this.bString = bString; this.cString = cString; } @XmlElement public String getaString() { return aString; } public void setaString(String aString) { this.aString = aString; } @XmlAttribute public String getbString() { return bString; } public void setbString(String bString) { this.bString = bString; } @XmlAttribute(name="passwd") public String getcString() { return cString; } public void setcString(String cString) { this.cString = cString; } }
public class T_student_Test { @Test public void test1() throws Exception{ //JAXBContext 类提供到 JAXB API 的客户端入口点。它提供了管理实现 JAXB 绑定框架操作所需的 XML/Java 绑定信息的抽象,这些操作包括:解组、编组和验证。 JAXBContext jaxbContext = JAXBContext.newInstance(Student.class); Student student = new Student("小明", "男", 20); //Marshaller 类负责管理将 Java 内容树序列化回 XML 数据的过程 Marshaller createMarshaller = jaxbContext.createMarshaller(); createMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); File file = new File("d:\\student123.xml"); if(!file .exists()){ file.createNewFile(); } createMarshaller.marshal(student,new FileOutputStream(file)); //Unmarshaller 类使客户端应用程序能够将 XML 数据转换为 Java 内容对象树。 Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Student student2 = (Student)unmarshaller.unmarshal(file); System.out.println(student2.toString()); } @Test public void test2() throws Exception{ Tw tw = new Tw(); tw.setaString("第一个元素"); tw.setbString("第二个元素"); tw.setcString("第三个元素"); JAXBContext.newInstance(Tw.class).createMarshaller().marshal(tw , System.out); } @Test public void test3() throws Exception{ List<Student> list = new ArrayList<Student>(); list.add(new Student("大白", "男", 23)); list.add(new Student("小白", "男", 13)); list.add(new Student("小美", "女", 18)); Lstudent tt = new Lstudent(); tt.setName("abc"); tt.setStudents(list); Marshaller marshaller = JAXBContext.newInstance(Lstudent.class).createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(tt , System.out); }}
里面有三个注解@XmlRootElement,@XmlElement,@XmlElement
见名都知道是什么意思,所以也没有什么好说的。还是多动手才印象深刻。
阅读全文
0 0
- JAXB 使用
- JAXB使用
- jaxb使用
- JAXB使用
- jaxb 使用 之 marshal
- jaxb 使用之 unmarshall
- JAXB的使用
- JAXB注解使用
- Jaxb annotation使用
- Jaxb annotation初步使用
- Jaxb annotation初步使用
- Java使用jaxb
- Jaxb annotation使用
- JAXB使用经验总结
- Jaxb annotation初步使用
- JAXB 简单使用
- JAXB的使用
- 使用JAXB创建XML
- cobar安装配置说明
- 绘制1像素的线
- SpringMvc 多图片上传
- java实现希尔排序算法
- HtmlUnit 获取登录后的页面信息失败
- JAXB使用
- POJ1236 Network of Schools(SCC)
- [计蒜客16953] Hack Portals [2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 D]
- 检查Tomcat是否运行中,不在运行状态便启动
- PeekMessage和GetMessage的区别
- (java)一个简单的原生的RabbitMQ的例子。
- 关于jsp html标签的判断问题 if else 功能
- struts HTTP Status 404
- php-laravel4.0框架 简单快速入门