Java中JAXB解析XML的核心是通过注解(如@XmlRootElement、@XmlElement、@XmlAttribute)和API(JAXBContext、Unmarshaller)将XML映射为Java对象;JDK 8及以前自带,JDK 9+需手动引入jakarta.xml.bind依赖。
Java中用JAXB解析XML,核心是把XML结构映射成Java对象,靠的是JAXB注解和JAXBContext、Unmarshaller这些API。不需要第三方库(JDK 8及以前自带),但JDK 9+默认移除了JAXB模块,需手动添加依赖。
这是最常用的两个注解。@XmlRootElement 标记类为XML根元素;@XmlElement 控制字段/属性如何映射为XML子元素。
例如有XML:
对应Java类写法:
@XmlRootElement(name = "person")
public class Person {
@XmlAttribute(name =
"id")
private String id;
@XmlElement(name = "name")
private String name;
@XmlElement(name = "age")
private int age;
// 必须有无参构造方法
public Person() {}
// getter/setter 省略
}
当XML中有包裹标签的列表时(比如
示例:
public class Library {
@XmlElementWrapper(name = "books")
@XmlElement(name = "book")
private List bookList = new ArrayList<>();
// getter/setter
}
@XmlAccessorType 决定JAXB扫描哪些成员(字段/属性)。默认是 FIELD(直接读字段),但更推荐 PROPERTY,即只通过 getter/setter 访问,便于封装。
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(propOrder = {"id", "name", "age"})
public class Person {
private String id;
private String name;
private int age;
@XmlAttribute
public String getId() { return id; }
public void setId(String id) { this.id = id; }
@XmlElement
public String getName() { return name; }
public void setName(String name) { this.name = name; }
@XmlElement
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
反序列化(XML → Java对象):
String xml = ""; JAXBContext context = JAXBContext.newInstance(Person.class); Unmarshaller unmarshaller = context.createUnmarshaller(); Person person = (Person) unmarshaller.unmarshal(new StringReader(xml)); 李四 30
序列化(Java对象 → XML):
Person p = new Person();
p.setId("1002");
p.setName("王五");
p.setAge(25);
JAXBContext context = JAXBContext.newInstance(Person.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // 美化输出
marshaller.marshal(p, System.out);
jakarta.xml.bind:jakarta.xml.bind-api 和 org.glassfish.jaxb:jaxb-runtime
# java
# app
# access
# win
# java类
相关文章:
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何破解联通资金短缺导致的基站建设难题?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
css网站制作参考文献有哪些,易聊怎么注册?
html制作网站的步骤有哪些,iapp如何添加网页?
如何解决VPS建站LNMP环境配置常见问题?
建站主机如何选?高性价比方案全解析
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
建站之星24小时客服电话如何获取?
如何通过虚拟主机快速搭建个人网站?
建站之星下载版如何获取与安装?
如何在服务器上三步完成建站并提升流量?
深圳网站制作案例,网页的相关名词有哪些?
制作网站公司那家好,网络公司是做什么的?
测试制作网站有哪些,测试性取向的权威测试或者网站?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
购物网站制作公司有哪些,哪个购物网站比较好?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何通过服务器快速搭建网站?完整步骤解析
已有域名如何免费搭建网站?
Swift中switch语句区间和元组模式匹配
如何快速生成ASP一键建站模板并优化安全性?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站主机选哪家性价比最高?
如何将凡科建站内容保存为本地文件?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
郑州企业网站制作公司,郑州招聘网站有哪些?
学校建站服务器如何选型才能满足性能需求?
seo网站制作优化,网站SEO优化步骤有哪些?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
建站主机选购指南与交易推荐:核心配置解析
如何用PHP快速搭建高效网站?分步指南
济南网站建设制作公司,室内设计网站一般都有哪些功能?
如何用低价快速搭建高质量网站?
定制建站方案优化指南:企业官网开发与建站费用解析
三星网站视频制作教程下载,三星w23网页如何全屏?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
制作宣传网站的软件,小红书可以宣传网站吗?
油猴 教程,油猴搜脚本为什么会网页无法显示?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
建站之星如何实现PC+手机+微信网站五合一建站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
大连网站制作公司哪家好一点,大连买房网站哪个好?
黑客如何利用漏洞与弱口令入侵网站服务器?
代刷网站制作软件,别人代刷火车票靠谱吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。