<Header>UWBCDtResponse</Header><Type>string</Type><Return>{\"caseCode\":\"abc\",\"bagList\":[{\"reelList\":[],\"bagCode\":\"12\",\"qty\":78000.0},{\"reelList\":[],\"bagCode\":\"123\",\"qty\":78000.0},{\"reelList\":[],\"bagCode\":\"1234\",\"qty\":78000.0},{\"reelList\":[],\"bagCode\":\"12345\",\"qty\":78000.0},{\"reelList\":[],\"bagCode\":\"123456\",\"qty\":78000.0},{\"reelList\":[],\"bagCode\":\"123456\",\"qty\":78000.0},{\"reelList\":[],\"bagCode\":\"1234567\",\"qty\":78000.0}]}</Return><Tailer>UWBCEnd</Tailer>
对象:
public class EcsBarcodeVo implements Serializable {
private static final long serialVersionUID = 1L;
@XmlAttribute
private String caseCode;
@XmlAttribute
private List bagList;
private class BagList{
private List<String> reelList;
private String bagCode;
private BigDecimal qty;
}
public Object conver(String clazz) throws XMLStreamException, JAXBException {
Reader reader = new StringReader(clazz);
XMLInputFactory factory = XMLInputFactory.newInstance(); // Or newFactory()
XMLStreamReader xsr = factory.createXMLStreamReader(reader);
xsr.nextTag();
while(!xsr.getLocalName().equals("return")) {
xsr.nextTag();
}
JAXBContext jc = JAXBContext.newInstance(EcsBarcodeVo.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
JAXBElement jb = unmarshaller.unmarshal(xsr, EcsBarcodeVo.class);
xsr.close();
EcsBarcodeVo customer = jb.getValue();
System.out.println(customer.getCaseCode());
System.out.println(customer.getBagList());
return null;
}
但是不知道是不是有转义符的原因,报错Message: found: CHARACTERS, expected START_ELEMENT or END_ELEMENT