zoukankan      html  css  js  c++  java
  • JAXB xml转java对象/java转xml,JAXB xml对象构造

        //xml转换成bean
        public static RequestXML parseToBean(String xmlstr)  {  
            RequestXML requestXml = null;  
            try {  
                JAXBContext jaxbContext = JAXBContext.newInstance(RequestXML.class);  
                Unmarshaller um = jaxbContext.createUnmarshaller();  
                requestXml = (RequestXML)um.unmarshal(new ByteArrayInputStream(xmlstr.getBytes()));  
            } catch (JAXBException e) {  
                e.getMessage();  
            }  
            return requestXml;  
        }
    
        //bean 转换成 xml
        private static String parseToXml(Object javaBean) throws Exception{
            JAXBContext context = JAXBContext.newInstance(xmlBean.getClass());
            Marshaller m = context.createMarshaller();
            
            StringWriter sw = new StringWriter();
            m.marshal(javaBean,sw);
            
            return sw.toString();
        }

    JAXB 结构:

    xml example:

    <?xml version="1.0" encoding="utf-8"?>
    <bean id="10" code="xm1000x">
        <name>x.m<name>
        
        <levels>
            <level key="1">none</level>
            <level key="2">nothing</level>
        </levels>
        
        <extras>
            <extra>
                <type>1</type>
                <content>xx.mm.xx</content>
            </extra>
            <extra>
                <type>2</type>
                <content>xx.mm.xx</content>
            </extra>
        </extras>
        
    </bean>        

    java bean:

    import java.util.ArrayList;
    import java.util.List;
    
    import javax.xml.bind.annotation.XmlAttribute;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlElementWrapper;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name="bean")
    public class Bean {
    	private Integer id;
    	private String code;
    	private String name;
    	private List<Level> levels = new ArrayList<Level>();
    	private List<Extra> extras = new ArrayList<Extra>();
    	
    	public Bean(){}
    
    	@XmlAttribute
    	public Integer getId() {
    		return id;
    	}
    
    	@XmlAttribute
    	public String getCode() {
    		return code;
    	}
    
    	@XmlElement
    	public String getName() {
    		return name;
    	}
    
    	@XmlElementWrapper(name="levels")
    	@XmlElement(name="level")
    	public List<Level> getLevels() {
    		return levels;
    	}
    
    	@XmlElementWrapper(name="extras")
    	@XmlElement(name="extra")
    	public List<Extra> getExtras() {
    		return extras;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public void setCode(String code) {
    		this.code = code;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public void setLevels(List<Level> levels) {
    		this.levels = levels;
    	}
    
    	public void setExtras(List<Extra> extras) {
    		this.extras = extras;
    	}
    	
    }
    

       

    import javax.xml.bind.annotation.XmlAttribute;
    import javax.xml.bind.annotation.XmlRootElement;
    import javax.xml.bind.annotation.XmlValue;
    
    
    
    @XmlRootElement
    public class Level {
        
        private Integer Key;
        private String value;
        
        public Level(){}
        
        @XmlAttribute(name="key")
        public Integer getKey() {
            return Key;
        }
    
        @XmlValue
        public String getValue() {
            return value;
        }
    
        public void setKey(Integer key) {
            Key = key;
        }
    
        public void setValue(String value) {
            this.value = value;
        }
        
        
    }
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    
    @XmlRootElement
    public class Extra {
        private String type;
        private String content;
        
        public Extra(){}
    
        @XmlElement
        public String getType() {
            return type;
        }
    
        @XmlElement
        public String getContent() {
            return content;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
        
        
    }
  • 相关阅读:
    测试网络
    测试
    Centos6.6中VIM的编辑、退出与保存
    IP
    2018.12.24 课程更新内容到第五章 渗透测试 第4、5节
    利用GRC进行安全研究和审计 – 将无线电信号转换为数据包(转)
    我的翻译--一个针对TP-Link调试协议(TDDP)漏洞挖掘的故事
    我的翻译--针对Outernet卫星信号的逆向工程
    Sulley安装手记
    乘用车黑客手册(译)
  • 原文地址:https://www.cnblogs.com/overstep/p/2923372.html
Copyright © 2011-2022 走看看