- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我决定使用 Simple XML serialization并陷入了基本问题。我正在尝试将 java.util.UUID
类实例序列化为这个小类中的最终字段:
@Root
public class Identity {
@Attribute
private final UUID id;
public Identity(@Attribute UUID id) {
this.id = id;
}
}
Tutorial展示了如何通过像这样注册转换器来序列化第三方对象:
Registry registry = new Registry();
registry.bind(UUID.class, UUIDConverter.class);
Strategy strategy = new RegistryStrategy(registry);
Serializer serializer = new Persister(strategy);
serializer.write( object, stream );
适用于 UUID 的转换器非常简单:
public class UUIDConverter implements Converter<UUID> {
@Override
public UUID read(InputNode node) throws Exception {
return new UUID.fromString(node.getValue());
}
@Override
public void write(OutputNode node, UUID value) throws Exception {
node.setValue(value.toString());
}
}
但是这个简单的代码对我来说不起作用,在序列化带有 UUID 字段的对象期间抛出异常不支持类 java.util.UUID 的转换。
我已经尝试了一些与自定义 Matcher
(不在教程中)类似的东西,对我有用:
Serializer serializer = new Persister(new MyMatcher());
serializer.write( object, stream );
和 Matcher
类如下所示:
public static class MyMatcher implements Matcher {
@Override
@SuppressWarnings("unchecked")
public Transform match(Class type) throws Exception {
if (type.equals(UUID.class))
return new UUIDTransform();
return null;
}
}
public class UUIDTransform implements Transform<UUID> {
@Override
public UUID read(String value) throws Exception {
return UUID.fromString(value);
}
@Override
public String write(UUID value) throws Exception {
return value.toString();
}
}
问题:
谢谢。
最佳答案
我又得自己回答了:-)
Simple XML 项目负责人 Niall Gallagher 的建议,来自支持列表:
"You could use either a Converter or a Transform. I would say for a UUID a Transform with a Matcher would be the easiest option."
所以,我使用 Transform<T>
/Matcher
并对此感到满意。这不会改变 Converter<T>
的事实对我不起作用:-)
关于java - 使用简单 XML (org.simpleframework.xml) 序列化第三方类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626208/
我正在尝试使用 Retrofit 从 URL 获取书籍 xml 数据。但是当应用程序运行时,它显示错误。我是新来的所以请帮助我。这是错误信息: 02-20 23:06:37.943 23835
在 Android 上,我使用 SimpleFramework 来解析传入的 XML 并创建适当的对象(之后将其保存到 DB...) XML 的一部分如下所示: 00300001-0000-
我正在尝试使用 simpleframework 序列化第三方 (parasoft) xml 报告。
我有一个 XML 字符串,其属性包含整数值: 还有 Simple Framework 类描述了这个item: @Root public static class Item { @Attrib
我在一个项目中使用 simpleframework ( http://simple.sourceforge.net/ ) 来满足我的序列化/反序列化需求,但在处理空/空字符串值时它没有按预期工作(好吧
我收到一个 XML 响应,其属性包含以下值: Wed Sep 05 10:56:13 CEST 2012 我在我的模型类中定义了一个带注释的字段: @Attribute(name = "regDate
我将我的库模块上传到 jcenter,并将这个模块用于我的应用程序项目。 我尝试构建我的应用程序它返回一个错误。 我搜索了这个问题,这个问题是由于知道什么是简单的框架。 我 必须同时使用这个库 我的库
我正在使用简单框架进行 XML 序列化/反序列化,虽然第一个很简单,但我对后者有疑问。因此,我从服务器收到 XML 响应,如下所示:
img1 img2 img3 img4 img5 img6 我有这样的内容的xml(不是真实的,只是为了描述我的问题) 想要通过 simplefr
所以我试图在元素没有值时设置一个空属性。 所以我的类看起来像这样: @Order(attributes = { "name" }) public class TypeNumber { @Att
我有一个大型 xml 树,其结构如下: 1 Test2 -1 Test1 我正在尝
我使用 SimpleFramework 来创建 XML。一切正常,期待一件“小”事。当我的列表之一为空时,SimpleFramework 会不断添加列表的标签(当然是空的)。当空标签为 null 或
我正在尝试使用 Simpleframework 将 XML 绑定(bind)到 POJO但它无法正常工作,我无法发现错误。这个结构与 JAXB 完美配合,我只是将注释更改为 Simpleframewo
我有这个代码: @ElementList(name="package", required=false, inline=true) private Hashtable packages; 这给了我
我正在尝试使用 org.simpleframework.xml.ElementMap 将以下 XML 映射到我的 Java 类: blahblah one
在经历了很多挫折之后,我来到这里寻求帮助。我正在使用 org.simpleframework.xml 来解析 Android 中的 RSS 提要。尝试解析 xml 文件时出现以下错误: org.sim
我有一个使用 SimpleFramework 的 Android 应用程序用于 XML 序列化。该应用程序在我测试过的所有真实设备上运行良好,没有任何延迟,但在模拟器上运行时,垃圾收集器会在每次启动该
我决定使用 Simple XML serialization并陷入了基本问题。我正在尝试将 java.util.UUID 类实例序列化为这个小类中的最终字段: @Root public class I
我正在使用 org.simpleframework.xml (http://simple.sourceforge.net/) 将 Java 对象序列化为 XML。 我想添加的是基于 Java 对象中的
我正在对 soap 服务使用改造,但出现元素“主体”没有 .. 错误。我不擅长用 SOAP :)这是我的回应和我的对象 %%UmVxdWVzdElzVmFsaWQyOT
我是一名优秀的程序员,十分优秀!