Cannot deserialize (convert) unwrapped list when it's second in class using Jackson XmlWrapper

前端 未结 2 959
面向向阳花
面向向阳花 2020-12-21 15:21

I am trying to use XmlMapper from Jackson to deserialize some simple xml files containing unwrapped lists.

My code:

package zm.study.xmlserialize.jac         


        
2条回答
  •  轮回少年
    2020-12-21 16:03

    Try using below code sample

    This sample xml file

    
    
     
      
         
            901
         
         
            902
         
         
            903
         
         
            904
         
         
            905
         
         
            906
         
         
            907
         
         
            908
         
         
            909
         
         
            910
         
         
            911
         
      
      
    

    package com.inma.itp.queue.models;
    
    import java.util.List;
    
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
    
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @XmlRootElement(name = "UsrAuthentRs")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class UsrAuthentRs {
    
    
    @XmlElement(name = "Body")
    private Body body = new Body();
    
    @Data
    public static class Body {
        @XmlElement(name = "BankUsrInfo")
        private BankUsrInfo bankUsrInfo = new BankUsrInfo();
    
    
        @Data
        @XmlAccessorType(XmlAccessType.FIELD)
        public static class BankUsrInfo {
    
    
            @XmlElement(name = "RoleInfo")
            @JacksonXmlElementWrapper(useWrapping = false)
            private List roles;
    
    
            @Data
            @NoArgsConstructor
            @XmlAccessorType(XmlAccessType.FIELD)
            public static class RoleInfo {
                @XmlElement(name = "RoleId")
                private String roleId;
    
            }
        }
    }
    
    }
    

    This main method which you can convert xml file to Pojo class

    XmlMapper mapper = new XmlMapper();
    UsrAuthentRq deserializedData = xmlMapper.readValue(YouXmlHere, UsrAuthentRq.class);
    

提交回复
热议问题