关闭

【XStream】XStream 忽略不重要点元素

标签: XStream.xml转javabeanXStream
570人阅读 评论(0) 收藏 举报
分类:

        XStream 是一个伟大的库来创建 XML 对象,反之亦然,和我使用它的很多的领域之一是存储配置。一个问题是,XStream 已被忽略字段序列化对象,而不是相反时 — — 例如,如果它发现在您的类中没有相应的属性的标记,它将引发异常。它是不清楚我为什么他们仍然没有任何事情来处理这种情况下,是相当普遍发生。例如,您可能有一个 XML 和只需要一小部分的数据,或者也许你改变你存储配置和删除某些属性的方式。在两种情况下你将不得不映射的整个对象图,即使你不想它。他们常见问题网页国这: 

如果从类中删除字段,反序列化一个老的版本包含的字段将导致引发异常。离开中的地方,但将它声明为瞬态将避免该异常,但 XStream 不会试图反序列化的字段。


我发现这种行为非常奇怪、 令人讨厌,但幸运的是有一种变通方法: XStream 类有一个名为 wrapMapper(MapperWrapper next) 子类可能实施告诉图书馆是否应视为一个给定的类或属性的受保护的方法。在此方法中,您可以添加字段或你不想打扰,并为他们返回 false 的类核查。签出一个工作示例:  
XStream x = new XStream() {
    @Override
    protected MapperWrapper wrapMapper(MapperWrapper next) {
        return new MapperWrapper(next) {
            @Override
            @SuppressWarnings("rawtypes")
            public boolean shouldSerializeMember(Class definedIn, String fieldName) {
                if (fieldName.equals("shouldCopyWithProject")) {
                    return false;
                }
 
                return super.shouldSerializeMember(definedIn, fieldName);
            }
        };
    }
};

在前面的示例中,过一个名为'shouldCopyWithProject'是在我的应用程序的较新版本中删除字段,但这种重构导致崩溃时打开了的文件从旧版本的应用程序,所以我不得不手动处理这种情况。如果 XStream 有一个清洁的解决方案为此,但这是非常不可能发生,这是巨大的。然而,这里所述的方法很有效。
// .....
XStream x = new XStream();
x.omitField(A.class, "shouldCopyWithProject");
// .....

原文地址:点击

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

xStream 排除属性

原文地址: http://jlins.iteye.com/blog/1175134 1.使用@XStreamOmitField 对不生成xml的字段加注释 2.用法: 3.@XStrea...
  • CSDNBenbenChong
  • CSDNBenbenChong
  • 2012-03-16 09:43
  • 6556

XStream转换时忽略未知字段

XStream是一个用于将对象序列化为xml以及将xml生成对象的库,通过它可以非常方便的做对象与xml(json等其他格式)之间的转换。但是在使用XStream过程中,会遇到xml元素与对象元素并不...
  • micwing
  • micwing
  • 2016-06-14 09:37
  • 1426

XStream解析xml和json

XStream是一个在我看来比较好的一个第三方包了。因为它在解析时支持注解、这样很是方便,并且xml跟json这两种格式的文件都能进行解析,XStream本属于java的一个第三方包,甚是好用,若是拿...
  • jenly121
  • jenly121
  • 2015-01-19 21:02
  • 3499

xstream 解析xml时只取想要的数据到bean

转载地址: http://bbs.csdn.net/topics/390699090?page=1#post-400752313 解决方法: 重写Xstream类: package c...
  • xingshen58
  • xingshen58
  • 2016-01-13 14:28
  • 831

XStream 去掉class属性

最近开始用XStream,遇到一个如下的问题:           派单时间       sendtime       2013-12-16     ...
  • hongtea1234
  • hongtea1234
  • 2013-12-17 11:32
  • 3928

基于Xstream工具解决对象到xml文本的集合节点重复问题

http://blog.csdn.net/cqstart116/article/details/44495979 继如上链接博客之后,具体问题的解决方案 效果xml样例 ...
  • cqstart116
  • cqstart116
  • 2015-03-29 17:34
  • 1468

XStream实现xml和java对象之间的互相转换(包括对属性,别名,下划线_的处理),同理JSON也可以

首先去官网下载响应JAR包 http://xstream.codehaus.org/index.html 最少需要两个jar包,一个xstream.jar,一个是xmlpull.jar 首先来看下j...
  • chiweitree
  • chiweitree
  • 2014-08-29 16:12
  • 9139

xstream处理null值属性转换

日常使用xstream进行xml转换的时候,会遇到实体对象中y
  • PointerNull
  • PointerNull
  • 2014-05-19 21:17
  • 4824

转换说明符!! hdu 1720 题目很水不重要. 但是c和c++ 按进制输入的不同感觉有点意思

#include #include using namespace std; int main() { int a,b; while(cin>>hex>>a>>b) { cout<<a+b<...
  • u013532224
  • u013532224
  • 2014-07-14 22:17
  • 592

java WebService接口开发注意点 java 利用Xstream生成和解析xml知识结构

java 利用Xstream生成和解析xml,知识结构:  1.Xstream简介;  使用限制: JDK版本不能 虽然预处理注解是安全的,但自动侦查注解可能发生竞争条件. 特点:  ...
  • a0701302
  • a0701302
  • 2017-07-18 17:32
  • 171
    个人资料
    • 访问:95709次
    • 积分:1704
    • 等级:
    • 排名:千里之外
    • 原创:95篇
    • 转载:2篇
    • 译文:1篇
    • 评论:18条
    文章分类
    最新评论