Xstream:删除类属性
如何删除 Xstream 中的 class=”Something ” 属性。
我使用带注释的 Xstream
How do I remove the class=”Something ” attributes in Xstream .
I use Xstream with annotations
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我读了它的代码,发现如果你的类不是
mapper.defaultImplementationOf(fieldType)
,它会为你添加默认的类属性,除非类属性名称为 null;所以,设置这个可以删除 class=”Something ” 属性
I read its code and found if your class is not
mapper.defaultImplementationOf(fieldType)
, it will add the default class attribute for you, unless the class attribute name is null;So, set this can remove the class=”Something ” attributes
事实上,这个问题的表述并不像应有的那么清晰。我的猜测是您正在使用非标准集合或使用 XStream 需要存储实际类的接口类型的字段。
在第二种情况下,您可以只使用别名:
xstream.alias("field name", Interface.class, ActualClassToUse.class);
请参阅 http://markmail.org/message/gds63p3dnhpy3ef2 了解更多详细信息。
Indeed the problem is not as clearly phrased as it should. My guess is that you are using a non-standard collection or using a field of an interface type for which XStream needs to store the actual class.
In the second case you can just use alias:
xstream.alias("field name", Interface.class, ActualClassToUse.class);
See http://markmail.org/message/gds63p3dnhpy3ef2 for more details.
使用这种类型的东西可以完全删除类属性,而不是用其他东西给它起别名:
Use something of this sort to remove the class attribute completely rather than aliasing it with something else:
至少,当不明显应使用哪个类时,会显示此属性。接口的使用是一个例子。
在这种情况下,您可以尝试:
。
This attribute is shown, at least, when it's not obvious which class shall be used. Usage of interface is an example.
In situations like that You can try:
.
你能给出一些示例输出吗?我认为这通常发生在使用集合时。在没有看到输出的情况下,我最好的猜测是您需要注册别名:
请参阅 http:// /x-stream.github.io/alias-tutorial.html 了解更深入的内容。再次粘贴一些示例输出。
Can you give some example output? I think this usually happens when using Collections. Without seeing the output, my best guess is that you need to register aliases:
See http://x-stream.github.io/alias-tutorial.html for more in-depth coverage. Again, paste in some sample output.