xml转换成java对象

xml直接转换成java对象
Xml格式如下
复制代码
<?xml version="1.0" encoding="UTF-8"?>
<ResponseInfo>
<ResCode>Success</ResCode>
<ResMessage>Success</ResMessage>
<ErrorNo>0</ErrorNo>
<ResultToken>1_8_40_6109_20131226153050_3</ResultToken>
<Result pageindex="1">

<forms>
    <form id="0" name="0二代身份证0" ver="2013-10-18">
        <page id="0" name="身份证头像页">
            <cell id="0" name="姓名">
                <result result="张三" />
            </cell>
            <cell id="1" name="性别">
                <result result="男" />
            </cell>
            <cell id="2" name="民族">
                <result result="汉*" />
            </cell>
            <cell id="7" name="地址">
                <result result="北京市海淀区1号" />
            </cell>
            <cell id="8" name="身份证号码">
                <result result="222778778801010001" />
            </cell>
        </page>
    </form>
</forms>

</Result>
</ResponseInfo>
复制代码
java类如下
复制代码
package com.beisun.mbp.mbp.util.entity;

import java.io.Serializable;
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 javax.xml.bind.annotation.XmlType;
import lombok.Getter;
import lombok.Setter;

@XmlRootElement(name = "ResponseInfo")
@XmlType
@XmlAccessorType(XmlAccessType.NONE)
public class XmlAfrDetect implements Serializable{

    private static final long serialVersionUID = 1234567890001L;
    
    @XmlElement(name = "ResCode")
    private @Setter
    @Getter
    String ResCode;
    
    @XmlElement(name = "ResMessage")
    private @Setter
    @Getter
    String ResMessage;
    
    @XmlElement(name = "ErrorNo")
    private @Setter
    @Getter
    String ErrorNo;
    
    @XmlElement(name = "ResultToken")
    private @Setter
    @Getter
    String ResultToken;
    
    @XmlElement(name = "Result")
    private @Setter
    @Getter
    XmlAfrResult Result;    
    
}

@XmlRootElement(name = "Result")
@XmlType
@XmlAccessorType(XmlAccessType.NONE)
public class XmlAfrResult implements Serializable{

    private static final long serialVersionUID = 1234567890002L;
    
    @XmlElement(name = "Faces")
    private @Setter
    @Getter
    XmlAfrFaces Faces;
    
    @XmlElement(name = "forms")
    private @Setter
    @Getter
    XmlOcrForms forms;
}
@XmlRootElement(name = "forms")
@XmlType
@XmlAccessorType(XmlAccessType.NONE)
public class XmlOcrForms implements Serializable{
    
    
    private static final long serialVersionUID = 123456677888990L;
    
    @XmlElement(name = "form")
    private @Setter
    @Getter
    XmlOcrForm form;
}

@XmlRootElement(name = "form")
@XmlType
@XmlAccessorType(XmlAccessType.NONE)
public class XmlOcrForm implements Serializable{
    
    private static final long serialVersionUID = 12345667788899L;
    
    
    @XmlAttribute(name = "id")
    private @Setter
    @Getter
    String id;
    
    @XmlAttribute(name = "name")
    private @Setter
    @Getter
    String name;
    
    @XmlAttribute(name = "ver")
    private @Setter
    @Getter
    String ver;
    
    
    @XmlElement(name = "page")
    private @Setter
    @Getter
    XmlOcrPage page;
    
}
复制代码

 

把xml直接转换成对象的代码
import javax.xml.bind.JAXB;
//protocolXML是 xml字符串哦
StringReader xml = new StringReader(protocolXML);
XmlAfrDetect responseInfo =JAXB.unmarshal(xml, XmlAfrDetect.class);

 

posted @   知行IT讲堂  阅读(3009)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示