jaxb实现xml与javaBean相互转换
jaxb实现xml与javaBean相互转换
肥猫钓鱼 发表于3年前
jaxb实现xml与javaBean相互转换
  • 发表于 3年前
  • 阅读 51
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

一、jaxb是什么 JAXB是Java Architecture for XML Binding的缩写。可以将一个Java对象转变成为XML格式,反之亦然。 我们把对象与关系数据库之间的映射称为ORM,其实也可以把对象与XML之间的映射称为OXM(Object XML Mapping)。原来JAXB是Java EE的一部分,在JDK1.6中,SUN将其放到了Java SE中,这也是SUN的一贯做法。JDK1.6中自带的这个JAXB版本是2.0,比起1.0(JSR 31)来,JAXB2(JSR 222)用JDK5的新特性Annotation来标识要作绑定的类和属性等,这就极大简化了开发的工作量。 二、jaxb应用模式 在JAVA EE 5\6中,jaxb可以很方便的与jax-rs、jax-ws集成,极大的简化了web service接口的开发工作量。

需要引入javax.xml.bind.jar,我是用myeclipse直接创建的web项目就不需要引入jar包,有自带的,所以建议创建web项目

一:从javabean到xml的转换 第一步:写一个简单的javabean package test.entity;

import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType;

@XmlType(name="test",propOrder={"id","name","pro"}) @XmlRootElement(name="Test") public class Test {

private String id;

private String name;

private String pro;

public String getId() {
	return id;
}
public void setId(String id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getPro() {
	return pro;
}
public void setPro(String pro) {
	this.pro = pro;
}

} 第二步: 把javabean转换成xml package testApp;

import java.io.StringWriter;

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller;

import test.entity.Test;

public class TestApp { public static void main(String[] args) throws JAXBException{ Test test = new Test(); test.setId("111"); test.setName("test"); test.setPro("pro"); JAXBContext context = JAXBContext.newInstance(Test.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");//编码格式 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息 StringWriter writer = new StringWriter(); marshaller.marshal(test, writer); System.out.println(writer.toString()); } } 运行结果: 运行后输出的结果:

从xml到javabean的转换只需要写几句代码即可,把上面成生的xml字符串拷贝下来,如下: package testApp;

import java.io.ByteArrayInputStream;

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller;

import test.entity.Test;

public class XmlToJava {

/**
 * @param args
 * @throws JAXBException 
 */
public static void main(String[] args) throws JAXBException {
	String xml = "<Test><id>111</id><name>test</name><pro>pro</pro></Test>";
	Test test = null;
	JAXBContext context = JAXBContext.newInstance(Test.class);
	Unmarshaller unMa =  context.createUnmarshaller();
	test = (Test)unMa.unmarshal(new ByteArrayInputStream(xml.getBytes()));
	System.out.println(test.getId()+"\t"+test.getName()+"\t"+test.getPro());
	
}

} 运行结果: 结果如下

共有 人打赏支持
粉丝 2
博文 29
码字总数 9287
×
肥猫钓鱼
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: