java与xml之间的转换(jaxb)
使用java提供的JAXB来实现java到xml之间的转换,先创建两个持久化的类(Student和Classroom):
Classroom:
package com.model;
public class Classroom {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Classroom(){
super();
}
public Classroom(int id,String name){
this.id = id;
this.name = name;
}
}
Student:
import javax.xml.bind.annotation.XmlRootElement;
//不要忘记了这个注解@XmlRootElement,说明将Student作为xml的根元素
@XmlRootElement
public class Student {
private String name;
private String sex;
private int age;
private Classroom classroom;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Classroom getClassroom() {
return classroom;
}
public void setClassroom(Classroom classroom) {
this.classroom = classroom;
}
public Student(){
super();
}
public Student(String name,String sex,int age,Classroom classroom){
super();
this.age=age;
this.classroom=classroom;
this.name = name;
this.sex = sex;
}
}
下面可以建立我的main函数了,在此,我们用的是JAXBContext创建的marshaller与unmarshaller来解析java与xml
package test; import java.io.StringReader; import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller; import com.model.Classroom;
import com.model.Student; public class Test {
public static void main(String[] args) {
//new Test().java_xml();
new Test().xml_java();
}
public void java_xml(){
try {
JAXBContext jaxbc = JAXBContext.newInstance(Student.class);
Marshaller marshaller = jaxbc.createMarshaller();
Student stu = new Student("小瞧","男",22,new Classroom(12,"10级"));
//marshaller.setProperty(marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(stu, System.out);
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void xml_java(){
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
"<student><age>22</age>" +
"<classroom>" +
"<id>12</id>" +
"<name>10级</name>" +
"</classroom>" +
"<name>小瞧</name>" +
"<sex>男</sex>" +
"</student>";
try {
JAXBContext jaxbc = JAXBContext.newInstance(Student.class);
Unmarshaller unmar = jaxbc.createUnmarshaller();
Student stu = (Student)unmar.unmarshal(new StringReader(xml));
System.out.println(stu.getAge());
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java与xml之间的转换(jaxb)的更多相关文章
- 使用JAXB来实现Java合xml之间的转换
使用jaxb操作Java与xml之间的转换非常简单,看个例子就明白了. //javaBean-->xml @Test public void test1() { try { JAXBContex ...
- WebService(2)-XML系列之Java和Xml之间相互转换
源代码下载:链接:http://pan.baidu.com/s/1ntL1a7R password: rwp1 本文主要讲述:使用jaxb完毕对象和xml之间的转换 TestJava2xml.java ...
- JAXB 实现java对象与xml之间互相转换
首先熟悉一下JAXB实现对象与xml互转时常用的一些注解使用: 1.@XmlRootElement,用于类级别的注解,对应xml的跟元素.通过name属性定义这个根节点的名称. 2.@XmlAcces ...
- Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS
在XML领域里,对XML文件的校验有两种方式:DTD校验.Schema校验.在Java中,对于XML的解析,有多种方式:DOM解析.SAX解析.StAX解析.结合XML和Java后,就产生了Bind技 ...
- Java对象 json之间的转换(json-lib)
在这里主要简单的介绍一下,如何使用json-lib这个工具包来完成Java对象(或集合)与json对象(或集合)之间的转换~ 1. Java对象转换成json(既创建json) 关键类:JSONObj ...
- Java基础——数据类型之间的转换
Java数据类型分为三大类,即布尔型.字符型和数值型.其中数值型又分为整型和浮点型.Java的基本数据类型(8种)为布尔型boolean(1字节):字符型char(2字节):整型byte(1字节).s ...
- java.util.Date 与 java.sql.Date 之间的转换
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); String dateStr = sdf.for ...
- java将XML文档转换成json格式数据
功能 将xml文档转换成json格式数据 说明 依赖包:1. jdom-2.0.2.jar : xml解析工具包;2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 ...
- 通过JAXB完成Java对象与XML之间的转换
Java对象转换XML的过程叫marshal. XML转换到Java对象的过程叫unmarshal. 一.Java对象转化为XML 这里省略getter和setter方法 通过标注@XMLRootEl ...
随机推荐
- excel中VBA的使用
遇到的问题 在工作中遇到了一点小小的问题,需要给我负责带的班级的同学们测试男生1000米,女生800米的成绩.表格是这样的: 体育成绩表 序号 班级 姓名 性别 男1000.女800 成绩 1 1 张 ...
- WPScan初体验
近日在朋友圈看某位dalao在Ubuntu上安装WPScan花了一个小时,于是洒家随手在Kali Linux上输入了wpscan,发现Kali里面已经装好了.于是决定玩两把WPScan. WordPr ...
- jenkins coding.net webhook plugin
开源地址: https://github.com/yuzd/coding.net =========================================================== ...
- asp.net core mvc剖析:mvc执行过程(一)
前面介绍了路由的过程,我们再来看下MvcRouteHandler的代码: public Task RouteAsync(RouteContext context) { ...... //根据路由信息查 ...
- framework各版本新特性(为面试准备)
菜鸟D估计描述这些新特性的文章都是烂大街的货色,之所以拿出来分(e)享(xin)一下,有两个原因:1.当年面试的时候有人问到,我不知道该怎么回答:2.项目需要发布了,但是考虑到framework的版本 ...
- Josephus问题的java实现
import java.util.ArrayList; import java.util.ListIterator; public class Josephus { public static voi ...
- 最常用的UML工具介绍
最常用的UML工具介绍 1.Rational Rose.大名鼎鼎,史上最有名.最无可替代的UML产品,以至于,大多数将之等同于UML工具,正如将可乐等同于可口可乐.需要指出的是,自从 Rational ...
- 关于volatile的可见性和禁止指令重排序的疑惑
在学习volatile语义的可见性和禁止指令重排序的相关测试中,发现并不能体现出禁止指令重排序的特性 实验代码如下 package com.aaron.beginner.multithread.vol ...
- java中map集合的迭代
import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...
- Java表达式中的那些坑
[1]您确定真正了解后缀表达式与前缀表达式的区别吗? public class IncrementDemo{ public static void main(String[] args) { int ...