XStream 中的自定义转换器

2024-05-31

我正在使用 XStream 将对象序列化为 XML 格式。我得到的格式化xml如下:node1,node2,node 3是pojo的属性,DetailDollars

我有一个要求,我必须计算一个百分比,例如 100/ 25 并将新节点添加到现有节点中。所以,最终的输出应该是:

<DetailDollars>
    <node1>100 </node1> 
    <node2>25</node2> 
    <node3>10</node3> 
</DetailDollars>

我编写了一个自定义转换器并注册到我的 xstream 对象。

public void marshal(..){
         writer.startNode("node4");         
         writer.setValue(getNode1()/ getnode2() );
         writer.endNode();
}

但是,我得到的 xml 流只有新节点:

<DetailDollars> 
    <node4>4</node4>
</DetailDollars>

我不确定哪个 xstream api 可以获得所需的格式。你能帮我解决这个问题吗?


这是您需要的转换器:

public class DetailDollarsConverter extends ReflectionConverter {

public DetailDollarsConverter(Mapper mapper,
        ReflectionProvider reflectionProvider) {
    super(mapper, reflectionProvider);
}

@Override
public void marshal(Object obj, HierarchicalStreamWriter writer,
        MarshallingContext context) {
    super.marshal(obj,writer,context);

    DetailDollars dl = (DetailDollars) obj;

    writer.startNode("node4");
    writer.setValue(Double.toString(dl.getNode1() / dl.getNode2()));
    writer.endNode();
}

@Override
public Object unmarshal(HierarchicalStreamReader reader,
        UnmarshallingContext context) {
    return super.unmarshal(reader,context);
}

@SuppressWarnings("unchecked")
@Override
public boolean canConvert(Class clazz) {
    return clazz.equals(DetailDollars.class);
}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XStream 中的自定义转换器 的相关文章

  • 如何为 编写自定义转换器

    在使用使用 POJO 列表的 PrimeFaces 组件时 如何编写自定义转换器 我的具体问题是
  • 将 html 文件中的阿拉伯数字转换为阿拉伯/波斯数字

    我正在尝试将纯文本阿拉伯数字转换为东方阿拉伯数字 所以基本上采取1 2 3 并将它们转换成 该函数转换all数字 包括标签中包含的任何数字 即H1 private void LoadHtmlFile object sender EventA
  • 如何将位图照片转换为十六进制颜色代码?

    我正在尝试为我的简历创建一个程序 但我在转换时遇到问题bitmap照片就是灰度照片转为十六进制 或者更好地称之为代码 如果颜色 有人可以帮助我吗 我尝试将其转换为Base64字符串但它不起作用 openFileDialog1 new Ope
  • RGB 到 HSL 转换

    我正在创建一个颜色选择器工具 对于 HSL 滑块 我需要能够将 RGB 转换为 HSL 当我搜索 SO 进行转换的方法时 我发现了这个问题HSL 到 RGB 颜色转换 https stackoverflow com questions 23
  • 如何将代码从 C# 转换为 PHP [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个用纯 C 编写的业务逻辑类 没有这种语言的任何特定内容 我会将此代码转换为 PHP 我可以编写自
  • 如何让 Wicket 7 与 Java 8 中的 java.time 配合使用?

    我有很多 bean 并且都使用 LocalDate 和 LocalDateTime Wicket 中的 DateTextField 和所有其他小部件 如 DatePicker 仅适用于 java util Date 有什么办法可以injec
  • 如何将 Web 应用程序转换为桌面可执行文件?

    我使用 AngularJS jQuery Bootstrap 和 AJAX REST API 构建了 HTML 应用程序 是否可以为 Windows 操作系统创建可执行文件 安装程序 如果没有任何第三方软件 它应该看起来像本机应用程序 但只
  • Java:将浮点二进制转换为浮点十进制

    我想转换表示 IEEE754 双精度数尾数部分的字符串 找不到Java中是否有这样的转换方法 以避免手动添加1 1 2 1 4 1 8等 010000001100101000011111000000000000000000000000000
  • 如何在javascript中计算LaTeX公式?

    我有 LaTeX 格式的 JavaScript 字符串 例如 frac y 2 2 x frac 2 sqrt y 2 x y 2 我希望能够用定义的变量来评估它 有谁知道用于此目的的框架或库 我尝试在谷歌和堆栈中找到它 但没有成功 如果您
  • 使用 f:convertNumber 时设置小数点分隔符

    我想知道如何在 JSF 应用程序上设置默认的小数点分隔符 我有一些
  • 在 R 中将整数转换为日期

    我想将整数列转换为日期 整数看起来像这样 20160101 当使用 as Date 函数并输入 origin 参数为 2016 01 02 时 生成新列具有以下错误值 55197 07 06 所以它与写入值无关 我尝试了很多代码 这可能是其
  • 默认 RenderTransform 转换器语法

    我有一个画布 应用了 RenderTransform 如下所示
  • 使用 awk 将稀疏矩阵转换为 ARFF

    我正在处理稀疏矩阵格式的极大数据集 数据具有归档格式 3 个制表符分隔的列 其中第一列中的字符串对应于行 第二列中的字符串对应于属性 第三列中的值是加权分数 church place 3 church institution 6 man p
  • 将对象序列化为 XML 时如何添加 XML 命名空间 (xmlns)

    我正在 XStream 的帮助下将对象序列化为 XML 如何告诉 XStream 将 xmlns 插入到对象的 XML 输出中 例如 我有一个想要序列化的简单对象 XStreamAlias value domain public class
  • 将base64转换为base62(不含特殊字符)

    我想在 URL 中传递河豚加密字符串 并希望像 base64 一样对其进行编码 但没有任何特殊字符 像 base62 这样的东西就很好 0 9a zA Z 所以我想做的是使用base64 encode 转换河豚加密字符串 并将base64
  • Xstream:删除类属性

    我该如何删除类 某事 Xstream 中的属性 我使用带注释的 Xstream 我读了它的代码 发现你的类不是mapper defaultImplementationOf fieldType 它会为你添加默认的类属性 除非类属性名称为nul
  • 默认转换器何时启动?

    使用以下代码 虽然 Text 属性绑定到 DateTime 源属性 但我注意到 WPF 似乎会自动将文本转换为 DateTime 而无需我编写 ValueConverter 有人可以解释一下这是如何完成的吗
  • 使用 .NET 将二进制转换器转换为十进制

    我已经开始掌握一些编程基础知识 但我仍然很新并且缺乏经验 我正在编写的新程序遇到问题 我想要一个程序 将 8 位二进制数放入文本框中 按下按钮 然后显示二进制数的十进制值 下面是我尝试过的代码 Public Class Form1 Priv
  • 为 XStream 中非 XML 的字段设置默认值

    有没有办法创建一个转换器或在每次转换后执行一些操作 对于上下文 我尝试填充不在 XML 中的字段的默认值 以便在数据模型发生更改时保持向后兼容性 例如 如果我有这个对象 class A private String b private St
  • 如何动态更改 WPF 中 DataGridTextColumn 绑定上的转换器?

    我真的不明白 WPF 和 XAML 并且继承了一些写得很糟糕的代码 所以我可能会扼杀它 但这里是 我继承了一个绑定到 Person 对象列表 在代码后面 的 DataGrid 其中必要的 DataGridTextColumn 在 XAML

随机推荐