XStream 可序列化对象
我目前正在使用 XStream 来序列化一些未实现 Serialized 的对象。有没有办法告诉 XStream 如果对象确实实现了 Serialized,则使用 Java 的默认序列化;如果没有实现,则使用 XML 序列化?或者我需要在它上面实现一个简单的层来检查?
谢谢, 杰夫
I am currently using XStream to serialize some of my objects that don't implement Serializable. Is there a way to tell XStream to use Java's default serialization if the object does implement Serializable and to fall back on XML serialization if it does not? Or would I need to implement a simple layer on top of it to check?
thanks,
Jeff
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这不是一个好主意。 Java序列化是二进制表示,XML是文本表示。
以
java.lang.String
为例。这实现了Serialized
,但显然您不希望您的字符串在 XML 中序列化为二进制 blob。对于数字类型等类似。XStream有一个注册自定义转换器的机制,我建议您使用它。如果您选择将二进制数据序列化到 XML 文档中,则需要以某种方式对其进行编码,例如使用 Base64 编码。
This would not be a good idea. Java serialization is a binary representation, XML is a textual representation.
Take
java.lang.String
, for instance. This implementsSerializable
, but clearly you would not want your Strings serialized as binary blobs inside your XML. Similarly for things like numeric types, etc.XStream has a mechanism for registering custom converters, I suggest you use that. if you choose to serialize binary data into your XML document, you'll need to encode it somehow, e.g. with Base64 encoding.