问题
I am having issues with parsing this XML into a POJO using Jackson. I have read all the previous descriptions on making classes to de-serialise the XML into POJOS but I keep getting either Null pointers or not END of element warnings. I am extremely confused and any help is much appreciated.
The input xml is
<row>
<entry align="right" valign="top">20</entry>
<entry align="right" valign="top">1A</entry>
<entry valign="top">SData</entry>
<entry align="center" valign="top">2</entry>
<entry valign="top">binary</entry>
<entry valign="top">Java enterprise</entry>
</row>
The code I am using is;
static void testSmallXml(){
String big = null;
try
{
big = readFileToString("other/testXML/NewFile.xml");
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
XmlMapper xmlMapper = new XmlMapper();
String small = big.substring(big.lastIndexOf("<row>"), big.lastIndexOf("</row>")+8);
try
{
rows in = xmlMapper.readValue(small, rows.class);
System.out.println(in.entries[0].value);
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(small);
}
and my POJO classes are
@JacksonXmlRootElement(localName = "row")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class rows{
@JacksonXmlProperty(localName = "entry")
public entry[] entries;
}
@JacksonXmlRootElement(localName = "entry")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class entry{
@JacksonXmlProperty(isAttribute = true)
private String align;
@JacksonXmlProperty(isAttribute = true)
private String valign;
@JacksonXmlText
public String value;
}
I keep getting a Null pointer exception for
rows["entry"]->Object[][2])
回答1:
Try this:
@JacksonXmlRootElement(localName = "row")
public static class rows {
@JacksonXmlElementWrapper(useWrapping=false)
@JacksonXmlProperty(localName = "entry")
public entry[] entries;
}
public static class entry {
@JacksonXmlProperty(isAttribute = true)
private String align;
@JacksonXmlProperty(isAttribute = true)
private String valign;
@JacksonXmlText
public String value;
}
来源:https://stackoverflow.com/questions/40711673/how-to-parse-xml-with-repeated-xml-tags-into-a-pojo-using-jackson