【问题标题】:XStream empty tag when List is emptyList 为空时的 XStream 空标签
【发布时间】:2010-10-14 11:03:54
【问题描述】:

使用 XStream 时,如果我尝试序列化一个对象的 java.util.List 集合为空,我会得到一个空标签(在集合字段上)。如何删除 xml 输出中的那个空标签?

【问题讨论】:

    标签: java xstream


    【解决方案1】:

    您的 List 变量必须为 null 且不包含空列表以避免出现“空”标签。

    List list = getList();
    if(list.isEmpty()) { list = null; }
    
    // Serialization ...
    

    编辑:

    如果您希望自动完成此操作,您需要创建一个自定义转换器,请按照本教程进行操作: http://x-stream.github.io/converter-tutorial.html

    【讨论】:

    • 我应该在哪里将列表设置为空?
    • 您必须在序列化之前将您的列表设置为空(如果为空)。但如果您想要更有用的答案,请提供代码。
    • 当然!那会起作用。但是,如果我有亲子关系并且父母有一个孩子列表,并且孩子们还维护一个其他孩子的列表,那么它会变得混乱。这是否意味着我必须检查定义的每个列表以确保它为空时为空?没有有效的方法吗,因为这可以在一个简单的对象图中工作,但是一旦增加,它就会变得无效。
    • 不需要创建自定义转换器,它更智能。我编辑了带有教程链接的答案。
    猜你喜欢
    • 1970-01-01
    • 2013-11-01
    • 2017-05-20
    • 2012-02-18
    • 1970-01-01
    • 2013-09-23
    • 2016-11-16
    • 2021-08-05
    • 1970-01-01
    相关资源
    最近更新 更多