java基础总结(五⼗五)--http发送接收xml格式报⽂
发送xml格式报⽂
使⽤Document将需要组装的内容放在document对象中,在发送的时候通过该对象可以得到xml格式的String对象,然后发送给其他部件。
解析xml格式报⽂
收到的xml格式可以是⼀个String对象,可以通过JAXBContext对象来解析成java bean对象。好像也可以通过Document对象来处理
重点讲解JAXB
JAXB 教程简单转化案例
摘要: JAXB 作为JDK的⼀部分,能便捷地将Java对象与XML进⾏相互转换,本教程从实际案例出发来讲解JAXB 2 的那些事⼉。完整版⽬录
Java 对象转 XML
⾸先定义需要转换的 Java bean:Student.java
@XmlRootElement
public class Student {
private String id;
private String name;
private Integer age;
// setters, getters
}
就是这么简单,只需要在普通的Java类上添加注解@XmlRootElement。
这⾥有⼏点需要注意:
JAXB 转换对象必须属于JAXBElement类型,或者使⽤ @XmlRootElement注解
JAXB 转换对象必须拥有⽆参数构造器(默认存在,如果被覆盖,需要显⽰指定)
public static void javaToxml(Student stu) throws Exception {
// 获取JAXB的上下⽂环境,需要传⼊具体的 Java bean -> 这⾥使⽤Student
JAXBContext context = wInstance(Student.class);
// 创建 Marshaller 实例
Marshaller marshaller = ateMarshaller();
// 设置转换参数 -> 这⾥举例是告诉序列化器是否格式化输出
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
// 构建输出环境 -> 这⾥使⽤标准输出,输出到控制台Console
PrintStream out = System.out;
// 将所需对象序列化 -> 该⽅法没有返回值
marshaller.marshal(stu, out);
}
这⾥演⽰了最基本的Java 对象转XML过程。为了⽅便阅读,每⼀步都有简明注释。
使⽤ JAXB 不需要引⼊第三⽅依赖jar包。
public static void main(String[] args) throws Exception {
Student stu = new Student("001","Tom",22);
javaToxml(stu);
}
使⽤main⽅法简单测试⼀下,在控制台可以看到如下输出。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
<age>22</age>
<id>001</id>
<name>Tom</name>
</student>
XML 转 Java 对象
Java bean 对象依然使⽤Student.java。
public static void xmlTojava() throws Exception {
// 获取JAXB的上下⽂环境,需要传⼊具体的 Java bean -> 这⾥使⽤Student
JAXBContext context = wInstance(Student.class);
// 创建 UnMarshaller 实例
Unmarshaller unmarshaller = ateUnmarshaller();
/
java xml是什么/ 加载需要转换的XML数据 -> 这⾥使⽤InputStream,还可以使⽤File,Reader等
InputStream stream = ClassLoader().getResourceAsStream("l"); // 将XML数据序列化 -> 该⽅法的返回值为Object基类,需要强转类型
Student stu = (Student) unmarshaller.unmarshal(stream);
// 将结果打印到控制台
System.out.println(stu);
}
这⾥演⽰了最基本的XML数据转换为Java 对象的过程。为了⽅便阅读,每⼀步都有简明注释。所需的l⽂件如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
<age>22</age>
<id>001</id>
<name>Tom</name>
</student>
其实就是上⼀步输出的数据。
public static void main(String[] args) throws Exception {
xmlTojava();
}
使⽤main⽅法简单测试⼀下,在控制台可以看到如下输出。
Student [id=001, name=Tom, age=22]
完整代码
可以在到完整代码。
下节预览
本节基于简单的JAXB 代码,直观体验的JAXB的转换过程。下⼀节将着重介绍注解在转换过程的使⽤情形。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论