当前位置: 首页 > 面试题库 >

xstream展平一个对象

孙泉
2023-03-14
问题内容

我正在尝试使用没有运气的转换器/封送平整xstream的xml输出。例如,

public class A{
    public B b;
    public int F;
    public String G; 
}

public class B{
    public String C;
    public String D;
    public int E;
}

输出为

<A>
  <B>
     <C></C>
     <D></D>
     <E></E>
  </B>
  <F></F>
  <G></G>
</A>

但是我需要

<A>
  <C></C>
  <D></D>
  <E></E>
  <F></F>
  <G></G>
</A>

这可能吗?如何摆脱B?(C,D,E是唯一命名的)。谢谢。到目前为止,我的尝试是

...    
public void marshal(Object value, HierarchicalStreamWriter writer,
    MarshallingContext context)
{
    B b = (B) value;
    writer.startNode("C");
    writer.setValue(b.getC());
    writer.endNode();

    writer.startNode("D");
    writer.setValue(b.getD());
    writer.endNode();

    writer.startNode("E");
    writer.setValue(b.getE());
    writer.endNode();
}

问题答案:

根据与XStream绑定的方式,您可以使用@XmlPath批注在EclipseLink
MOXy中
非常轻松地完成此操作:

public class A{ 
    @XmlPath(".") public B b; 
    public int F; 
    public String G;  
}

public class B{ 
    public String C; 
    public String D; 
    public int E; 
}

有关基于MOXy的XPath映射的信息,请参见:

  • http://bdoughan.blogspot.com/2010/07/xpath-based-mapping.html


 类似资料:
  • 问题内容: 在Gulp中,我用来从目录中选择每个字体文件: 但是,我希望所有这些字体文件并排放置在一个目录中,而不是从目录中重新创建整个树。 在Gulp,Gulp Utils和npm-glob API中查看并没有真正帮助我,尽管我可以很容易地跳过它。 最好的方法是什么? 问题答案: 我会用gulp-flatten: 至于如何在内部完成,请检查:https : //github.com/armed/

  • 我正在从swagger 2迁移到OpenApi 3。 Swagger 2示例代码 OpenApi 3代码 DTO类 在这两种情况下,大摇大摆的用户界面的生成有显著差异。 Swagger 2将DTO对象展平为单个查询参数: 在Swagger 2用户界面中,对象作为单个查询参数进行图像展平 OpenApi 3创建JSON对象时: 图像对象不会展平,而是创建一个json对象 我想让OpenApi 3中的

  • 我目前正在使用XStream来解析XML文件,但无法使它执行我需要它执行的操作。如果有必要,我会换另一个图书馆,任何可以解决这个问题的! 我正试图将其解析为如下所示的模型: 标题写得很好,但我很难解析作者。不幸的是,以这样一种“更合理”的格式获取XML提要并不是一种选择: 我可以做什么来将“author1”、“author2”等解析成一个列表吗?

  • XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别)。 Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将javaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不