【问题标题】:How to deserialize from xml file to object list in java?java - 如何从xml文件反序列化到java中的对象列表?
【发布时间】:2013-01-02 10:35:57
【问题描述】:

以下代码不起作用。运行这些行时出现异常[Object objPoints = serializer.read(Point.class, file);] 详细来说,源附件不包含 Persister.class 的源。

import org.simpleframework.xml.Serializer; 
import org.simpleframework.xml.core.Persister;
import java.io.File;

Serializer serializer = new Persister();
File file = new File("1.xml");
Object objPoints = serializer.read(Point.class, file);

点类如下:

@Root
public class Point {
   @Element
   private float X;
   @Element
   private float Y;
}

我引用了this link

【问题讨论】:

  • 您使用的库是什么? Serializer 类是什么?
  • 另外我几乎相信该方法将被称为read 而不是reafile 将在没有前导> 的情况下传递。请确保您发布您的真实代码。
  • @Boris,我导入 [import org.simpleframework.xml.Serializer;导入 org.simpleframework.xml.core.Persister;]
  • “序列化不起作用”是什么意思。意思是?你有例外吗?
  • 还包括您要解析的 xml 文件的内容

标签: java xml serialization simple-framework


【解决方案1】:

如果我使用您评论中的 xml 和您的代码,它可以工作:

XML:

<Point>
   <X>2</X>
   <Y>3</Y>
</Point>

但是在这个问题的标题中,你谈到了“对象列表”——你能在这里更详细一点吗?

如果您需要反序列化点列表,则不能使用 Point 类,而是使用列表。

顺便说一句。您的 xml 文件是否包含任何其他内容或仅包含这一点?

【讨论】:

  • 真的吗?我不知道有什么问题。我的代码对我有用。实际上我需要阅读对象列表。但我无法读取一个对象。成功读取一个对象后,我不会尝试对象列表。
  • 您不能从 XML 点列表中仅读取一个 Point(例如,&lt;points&gt;&lt;point&gt;..&lt;/point&gt;&lt;point&gt;..&lt;/point&gt;&lt;/points&gt;)。但是您可以做的是创建一个包含Points 列表的PointList 类。这样的列表(包括其中的所有对象)可以被反序列化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
相关资源
最近更新 更多