XMLをJavaに構文解析しようとしていますが、このXMLは大きな混乱です。Jacksonが同じPOJO内の別のアンラップされた要素をマップする
ジャクソンのように、各タイプの最後のオブジェクトが読み込まれ、各タイプの配列サイズは1つのオブジェクトしかありません。
編集:これは私が(デバッグをし、フォームオブジェクトの値を参照)を行うことをしようとしているものです:
public class Main {
public static void main(String[] args) throws IOException {
XmlMapper mapper = new XmlMapper();
Form form = mapper.readValue(getXml(), Form.class);
}
public static String getXml() {
return "<forms>\n"
+ " <circles><x>1</x></circles>\n"
+ " <squares><x>1</x></squares>\n"
+ " <squares><x>1</x></squares>\n"
+ " <circles><x>1</x></circles>\n"
+ " <squares><x>1</x></squares>\n"
+ "</forms>";
}
}
@JacksonXmlRootElement(localName = "forms")
class Form {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "circles", isAttribute = false)
private List<Circle> circles;
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "squares", isAttribute = false)
private List<Square> squares;
public List<Circle> getCircles() {
return circles;
}
public void setCircles(List<Circle> circles) {
this.circles = circles;
}
public List<Square> getSquares() {
return squares;
}
public void setSquares(List<Square> squares) {
this.squares = squares;
}
}
@JacksonXmlRootElement(localName = "circles")
class Circle {
@JacksonXmlProperty(isAttribute = false)
private String x;
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
}
@JacksonXmlRootElement(localName = "squares")
class Square {
@JacksonXmlProperty(isAttribute = false)
private String x;
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
}
さらに詳しい情報を含める必要があります。どのようにやっているのかは明確ではありません。使い方を示すJavaコードが役立つはずです。しかし、私は、表示されているコードが混乱していることに同意します。それを使用可能なものにマップするのは簡単ではないかもしれません。しかし、 '@ JsonAnySetter'やsetterメソッドの特殊な扱いを、それらの分離した' points'と 'squares'要素に対して試みることができます。 – StaxMan
詳細情報が追加されました。 – carf
余分な情報についてのご意見はありますか? – carf