gpt4 book ai didi

java - 使用 Jackson XML Mapper 获取列表

转载 作者:可可西里 更新时间:2023-11-01 10:04:29 30 4
gpt4 key购买 nike

我目前正在与 Jackson 合作,从在线位置读取一个 XML 文件,将其映射到一个对象,然后使用对象映射器将该对象插入到 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;

...
}

我试过转换或映射到传感器;然而,那是行不通的。缺少的步骤是什么?我阅读的所有文档和教程似乎都只处理单个条目的简单实例。

最佳答案

当您使用通用 List 时,我猜 Map 是您数据的默认表示。

如果你想告诉映射器,你的数据应该如何表示,我会使用这样的东西:

List<Sensor> entries = xmlMmapper.readValue(conn.getInputStream(), new TypeReference<List<Sensor>>() {});

我现在无法验证这是否可以编译,但我希望它能有所帮助。

有关 TypeReference 的更多信息,请参阅 here .

关于java - 使用 Jackson XML Mapper 获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21911199/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com