Ладно, потому что я был твердым сторонником того, насколько на самом деле прост XML просто Я думал, что дам вам полный ответ на этот вопрос, и вот он здесь. Полностью рабочий код.
Points.java
// You can make this non private and more complex at will.
public class Points {
@ElementList(entry = "point", inline = true) public ArrayList<Point> points;
}
Point.java
public class Point {
private final String id;
private final HashMap<String, Integer> rssiMap;
public Point(@Attribute(name = "id") String id, @ElementMap(attribute = true, entry = "rssi", key = "ssid", valueType = Integer.class, inline = true) HashMap<String, Integer> rssiMap) {
this.id = id;
this.rssiMap = rssiMap;
}
@Attribute(name = "id")
public String getId() {
return id;
}
@ElementMap(attribute = true, entry = "rssi", key = "ssid", valueType = Integer.class, inline = true)
public HashMap<String, Integer> getRssi() {
return rssiMap;
}
}
Main.java
public class Main {
public static void main(String[] args) throws Exception {
Serializer serial = new Persister();
// Warning: You will need to make sure that this file exists or change it.
File file = new File("data/data.xml");
Points points = serial.read(Points.class, file);
for(Point point : points.points) {
System.out.println(point.getId());
for(Entry<String, Integer> entry : point.getRssi().entrySet()) {
System.out.println(" " + entry.getKey() + ": " + entry.getValue());
}
}
}
}
И это все, что есть. Это должно легко читаться в ваших данных. Если вы собираетесь протестировать этот код, то единственное, что вы должны убедиться в том, что функция Main правильно устанавливает файл, из которого вы собираетесь читать, или вы просто предоставляете функции чтения правильный ввод.
P.S. Я проверил это на своем компьютере, поэтому я знаю, что это работает. Приветствия.