私は現在 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;
...
}
Sensor へのキャストまたはマッピングを試みました。しかし、それはうまくいきません。欠けているステップは何ですか?私が読んだすべてのドキュメントとチュートリアルは、単一のエントリの単純なインスタンスのみを処理しているようです。