91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中怎么將xml轉換成對象

發布時間:2021-06-18 15:45:14 來源:億速云 閱讀:187 作者:Leah 欄目:大數據

java中怎么將xml轉換成對象,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

package util;

import lombok.extern.slf4j.Slf4j;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.File;
import java.io.FileInputStream;
import java.io.StringReader;
import java.io.StringWriter;


@Slf4j
public class JaxbUtil {

    public static JAXBContext newInstance(Class obj) {
        JAXBContext jaxbContext = null;
        try {
            jaxbContext = JAXBContext.newInstance(obj);
        } catch (JAXBException e) {
            e.printStackTrace();
        }
        return jaxbContext;
    }

    public static String convertToXml(Object obj) {
        return convertToXml(obj, "UTF-8");
    }

    public static String convertToXml(Object obj, String encoding) {
        String result = null;
        try {
            JAXBContext context = JAXBContext.newInstance(obj.getClass());
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);

            StringWriter writer = new StringWriter();
            marshaller.marshal(obj, writer);
            result = writer.toString();
        } catch (Exception e) {
            log.error("convertToXml error", e);
        }
        return result;
    }


    public static <T> T converyToJavaBean(String xml, JAXBContext context) {
        T t = null;
        StringReader sr = null;
        try {
            sr = new StringReader(xml);
            Unmarshaller unmarshaller = context.createUnmarshaller();
            t = (T) unmarshaller.unmarshal(sr);
        } catch (Exception e) {
            log.error("converyToJavaBean error", e);
        } finally {
            if (null != sr) {
                sr.close();
            }
        }

        return t;
    }

    public static <T> T xmlAnalyze(String path, JAXBContext jaxbContext, T t) {
        try {
            File file = new File(path);
            FileInputStream in = new FileInputStream(file);
            int size = in.available();
            byte[] buffer = new byte[size];
            in.read(buffer);
            in.close();
            String xmlStr = new String(buffer, "utf-8");
            t = JaxbUtil.converyToJavaBean(xmlStr, jaxbContext);

        } catch (Exception e) {
            log.error("xml解析失敗" + t.getClass());
        }
        return t;
    }

//    public static void main(String[] args) {
//        OutInfo outInfo = new OutInfo();
//        outInfo = xmlAnalyze("C:\\Users\\yzhang\\Desktop\\inout_pedinfo_8_000026600.xml", newInstance(outInfo.getClass()), outInfo);
//        System.out.println(outInfo);
//    }
}

看完上述內容,你們掌握java中怎么將xml轉換成對象的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瑞昌市| 安塞县| 来安县| 恭城| 陵川县| 远安县| 巴林左旗| 黄大仙区| 当涂县| 会宁县| 商丘市| 梁河县| 集贤县| 新密市| 伊宁市| 博客| 瓦房店市| 乐至县| 临沧市| 灵武市| 阿克| 托克逊县| 辽中县| 双辽市| 崇文区| 财经| 鹤庆县| 礼泉县| 个旧市| 盐边县| 钟山县| 无为县| 科尔| 沂水县| 资中县| 利辛县| 杭锦后旗| 托里县| 福鼎市| 宁南县| 山西省|