我目前正在与 Jackson 合作,从在线位置读取 XML 文件,将其映射到对象,然后使用 Object Mapper 将该对象插入 MongoDB。
目前我的数据集看起来像这样:
<sensors>
<sensor id="000" name="Sensor Name" refreshRate="2000">
<location latitude="12.3456" longitude="-67.890"/>
</sensor>
<sensor id="000" name="Sensor Name" refreshRate="2000">
<location latitude="12.3456" longitude="-67.890"/>
</sensor>
</sensors>
如果我执行以下操作:
列表条目 = xmlMapper.readValue(conn.getInputStream(), List.class);
我得到一个包含项目的 LinkedHashMap 列表。但是,如果我可以将它映射回我已经创建的传感器类,我会更喜欢。
这个传感器类是我在与 Mongo 交互时使用的类,它看起来像这样:
@Document(collection = "Sensor")
@JsonIgnoreProperties(ignoreUnknown = true)
@JacksonXmlRootElement(localName="sensors")
public class Sensor {
@Id
private int id;
String name = "";
long refreshRate = "";
Location location;
...
}
我试过投射或映射到传感器;但是,这是行不通的。缺少什么步骤?我阅读的所有文档和教程似乎只处理单个条目的简单实例。