JXAB进行接口解析的demo(用于xmlTobean or beanToxml)

JXAB解析

用途:使用JXAB进行接口解析时候XML格式与对象之间进行转换

test类xmltobean

package demo;

        import java.io.File;
        import java.io.IOException;
        import java.util.List;

        import javax.xml.bind.JAXBContext;
        import javax.xml.bind.JAXBException;
        import javax.xml.bind.Unmarshaller;

public class XmlToBean {

    /**
     * xml文件配置转换为对象
     * @param xmlPath  xml文件路径
     * @param load    java对象.Class
     * @return    java对象
     * @throws JAXBException
     * @throws IOException
     */
    public static Object xmlToBean(String xmlPath,Class<?> load) throws JAXBException, IOException{
        JAXBContext context = JAXBContext.newInstance(load);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        Object object = unmarshaller.unmarshal(new File(xmlPath));`
        return object;
    }

    public static void main(String[] args) throws IOException, JAXBException {
        String xmlPath =  "D:/testConfig.xml";
//        Object object = XmlToBean.xmlToBean(xmlPath,StudentList.class);
//        Body body = (Body)XmlToBean.xmlToBean(xmlPath,Body.class);
        Ap o = (Ap)XmlToBean.xmlToBean(xmlPath, Ap.class);
        StudentList students = o.getBody().getStudentList();
        List<Student1> studentList = students.getStudents();
        System.out.println(studentList);
    }
}

testConfig.xml 格式

```java
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ap>
	<head>
					<aa>aa</aa>
					<bb>bb</bb>
	</head>
	<body>
		<array>
			<dto>
					<name>张三</name>
					<number>10001</number>
					<sex>男</sex>   
			</dto>
			<dto>
					<name>李四</name>
					<number>10002</number>
					<sex>男</sex>      
			</dto>
			<dto>
					<name>莉莉</name>
					<number>10003</number>
					<sex>女</sex>              
			</dto>
		</array>
	</body>
</ap>

beanToXml

package demo;


        import java.io.BufferedWriter;
        import java.io.File;
        import java.io.FileWriter;
        import java.io.IOException;
        import java.io.StringWriter;
        import java.util.ArrayList;
        import java.util.List;

        import javax.xml.bind.JAXBContext;
        import javax.xml.bind.JAXBException;
        import javax.xml.bind.Marshaller;

public class BeanToXml {

    /**
     * java对象转换为xml文件
     * @param
     * @param load    java对象.Class
     * @return    xml文件的String
     * @throws JAXBException
     */
    public static String beanToXml(Object obj,Class<?> load) throws JAXBException{
        JAXBContext context = JAXBContext.newInstance(load);
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
        StringWriter writer = new StringWriter();
        marshaller.marshal(obj,writer);
        return writer.toString();
    }

AP类

package demo;

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 java.util.ArrayList;

/**
 * @author xuhw
 * @Title
 * @Description
 * @date 2021/11/4 20:53
 */
@XmlRootElement(name="ap")
@XmlAccessorType(XmlAccessType.FIELD)
public class Ap {

    @XmlElement(name="head")
    private Head head;
    @XmlElement(name="body")
    private Body body;

    public Head getHead() {
        return head;
    }

    public void setHead(Head head) {
        this.head = head;
    }

    public Body getBody() {
        return body;
    }

    public void setBody(Body body) {
        this.body = body;
    }

    public static void main(String[] args) {
        ArrayList  aa = null;
        for (Object o : aa) {
            System.out.println(o);
        }
    }
}

Body

package demo;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author xuhw
 * @Title
 * @Description
 * @date 2021/11/4 20:39
 */
@XmlAccessorType(XmlAccessType.FIELD)
public class Body {

    @XmlElement(name="array")
    private StudentList studentList;

    public StudentList getStudentList() {
        return studentList;
    }

    public void setStudentList(StudentList studentList) {
        this.studentList = studentList;
    }
}

Head

package demo;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

/**
 * @author xuhw
 * @Title
 * @Description
 * @date 2021/11/4 20:54
 */
@XmlAccessorType(XmlAccessType.FIELD)
public class Head {

    private String  aa;
    private String  bb;

    public String getAa() {
        return aa;
    }

    public void setAa(String aa) {
        this.aa = aa;
    }

    public String getBb() {
        return bb;
    }

    public void setBb(String bb) {
        this.bb = bb;
    }
}

StudentList

package demo;

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;

public class StudentList {

    List<Student1> students;    //所有学生信息的集合

    @XmlElement(name = "dto")
    public List<Student1> getStudents() {
        return students;
    }

    public void setStudents(List<Student1> students) {
        this.students = students;
    }

}

Student

package demo;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

/**
 * @author xuhw
 * @Title
 * @Description
 * @date 2021/11/4 20:28
 */
@XmlAccessorType(XmlAccessType.FIELD)
public class Student1  {
    private String name;

    private String number;

    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值