什么是XML序列化和反序列化,它在数据持久化中的作用是什么?

XML序列化将对象公共字段和属性转为结构化XML文本,反序列化则还原对象;不保存类型信息、不处理私有成员,跨系统对接需注意类型一致性。

XML序列化是把对象的公共字段和属性值转成结构化的XML文本,反序列化则是从XML文本还原出对象。它不保存类型信息,也不处理私有成员或方法,所以反序列化后的对象类型可能和原始不一致——这点在跨系统对接时要特别注意。

XML序列化怎么工作

它用标签包裹数据,比如一个Person对象序列化后可能是:

28

这个过程只依赖类的公共属性,不需要[Serializable]标记(和二进制序列化不同),但字段名会直接变成XML元素名。

  • 支持自定义命名空间、编码格式和根节点名称
  • 默认跳过null值、只读属性和索引器
  • 遇到循环引用会报错,需提前设计好对象结构

为什么适合数据持久化

XML是纯文本、人类可读、平台无关,特别适合存配置文件、用户设置或轻量级业务数据。

  • 保存到本地文件后,能用记事本打开检查或手动修改
  • 程序重启时,读取XML再反序列化,就能恢复上次的状态
  • 比数据库更轻量,没有连接、迁移、权限等开销

实际使用要注意什么

不是所有场景都适合XML序列化,尤其对性能或安全性要求高的地方。

  • 敏感字段(如密码)不能直接暴露在XML里,得先脱敏或加密再序列化
  • 类结构变更后,旧XML可能无法反序列化,建议加版本号或兼容字段
  • 大数据量时XML体积大、解析慢,JSON或二进制格式通常更高效

基本上就这些。它不复杂但容易忽略细节,用对了就是简单可靠的持久化方案。