栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java:使用JAXB方式实现xml和对象之间的转化(注解方式)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:使用JAXB方式实现xml和对象之间的转化(注解方式)

1. 声明

当前内容主要为本人学习和使用JAXB方式实现xml和对象之间的转化,主要参考官方文档,使用注解方式

主要内容:

    将对象转化为xml文本将xml文本转化为对象修改默认标签名

实体类User

@XmlRootElement(name = "user")
public class User {
	private String username;
	private Integer age;
	private String email;
	// 省略get、set方法

}
2. 将对象转化为xml
try {
	JAXBContext jc = JAXBContext.newInstance( User.class);
		Marshaller marshaller = jc.createMarshaller();
		User user = new User();
		user.setAge(18);
		user.setUsername("admin");
		user.setEmail("admin@qq.com");
		marshaller.marshal(user, System.out);
	} catch (JAXBException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

结果(手动格式化后):



	18
	admin@qq.com
	admin

3. 将xml转化为对象
try {
		JAXBContext jc = JAXBContext.newInstance( User.class);
		Unmarshaller unmarshaller = jc.createUnmarshaller();
		User user = (User)unmarshaller.unmarshal(new File("tmp/user.xml"));
		System.out.println(user);
	} catch (JAXBException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

其中user.xml为

结果为:

User [username=张三, age=18, email=zhangsan@qq.com]
4. 自定义转换的标签名

在有的时候觉得标签名并不是属性名称此时可以使用@XmlElement(name = "XXX")来自定义标签名

可能出现的错误:

该错误的原因是:getXXX方法和XXX属性被映射为一个属性,导致出现重复的属性的问题,可以直接将getXXX方法全部去掉

将@XmlElement注解放在get方法上面可以解决

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/713214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号