json轉成類對象轉成xml全過程

類對象

@XStreamAlias("ROOT")
public class ProjectBase implements BaseConverterBean {private ProjectInfo PROJECTINFO;public ProjectInfo getPROJECTINFO() {return PROJECTINFO;}public void setPROJECTINFO(ProjectInfo pROJECTINFO) {PROJECTINFO = pROJECTINFO;}}

@XStreamAlias("PROJECTINFO")
public class ProjectInfo implements BaseConverterBean {private String PROJECTID;// 項目IDprivate String PROVINCELOGO;// 省份標識默認private String PROJECTNAME;// 項目名稱private String PROJECTCODE;// 項目編碼private String PROJECTYEAR;// 項目所屬年份private String PURCHASETYPE;// 采購類型private String PURCHASESTYLE;// 采購方式private String BidType;// 項目類型private String RECEIVEDEMANDTIME;private String Procurementplandecisioncompletiontime;// 采購方案決策完成時間YYYY-MM-DDprivate String MATERIALTYPE;// 物資類型private String EXPENSESTYPE;// 開支類型private String PROJECTTOTALAMOUNT;// 估算金額(不含稅,萬元)private String DEMANDUNITNAME;// 需求部門private String CREATEDATE;// 創建時間private String PROJECTMANAGER;// 項目經理private String PROJECTMANAGERNAME;// 項目經理姓名private String CREATEDEPT;// 創建部門(項目歸屬部門)private String PROJECTDESCRIP;// 項目描述private String DECISIONTIME; // 采購方案決策時間----報備項目需求private String HIGHEST_PATH;// 采購方案決策方式private String ISPRE;// 是否資格預審private String ISDELE;// 是否委托代理機構private String ORIGINAL_PROJECTID;// 原項目IDprivate String SingleSourceScene;// 項目場景private String ReasonRemarks;// 單一來源場景應用理由說明private String ApplicationReason;// 單一來源特殊場景應用理由private String WhichScenario;// 屬于哪種標準場景private String ProjectType; // 是否電子采購項目-----報備項目需求private String NONREASN;// 不上平臺原因private String REMARKS;// 備注------報備項目需求private String PURCHASEOANO;// 采購方案審批OA公文文號private String RESERVESTR1;// 省公司暫不可用,總部使用是否公開字段private String RESERVESTR2;// 估算金額(含稅,萬元)private String RESERVESTR3;// 省公司暫不可用,總部供應鏈使用作為原項目編碼private String RESERVESTR4;// 預留字段4private String RESERVESTR5;// 預留字段5// @XStreamAlias("ProjectAttachments")private ProjectAttachments ProjectAttachments;private SingleSourceSceneURLS SingleSourceSceneURLS;private ProdectInfos PRODUCTINFOS;private String SelectedBddingReason;private SelectedBddingProves SelectedBddingProves;
}

引入到Java包

import com.alibaba.fastjson.JSON;

從json轉成類

public static String xmlstr1000000000="{\"pROJECTINFO\":{\"cREATEDATE\":\"2019-12-19\",\"cREATEDEPT\":\"總部\\\\采XXXX\\\\XXX\",\"dECISIONTIME\":\"2020-01-09\",\"dEMANDUNITNAME\":\"2\",\"eXPENSESTYPE\":\"2\",\"hIGHEST_PATH\":\"21\",\"iSDELE\":\"0\",\"iSPRE\":\"0\",\"mATERIALTYPE\":\"1\",\"nONREASN\":\" \",\"oRIGINAL_PROJECTID\":\"100000000037469\",\"pISPRE\":\"1\",\"pRODUCTINFOS\":{\"prodectList\":[{\"pRODUCTAMOUNT\":\"124506\",\"pRODUCTCODE\":\"330113001\",\"pRODUCTID\":\"330113001\",\"pRODUCTNAME\":\"SPN設備\",\"pRODUCTUNIT\":\"套\"}]},\"pROJECTCODE\":\"100000000037469\",\"pROJECTDESCRIP\":\" \",\"pROJECTID\":\"100000000037469\",\"pROJECTMANAGER\":\"xukefeng@hq.cmcc\",\"pROJECTMANAGERNAME\":\"許克鋒\",\"pROJECTNAME\":\"XXXX設備擴容部分集中采購-中興\",\"pROJECTTOTALAMOUNT\":\"50429.69\",\"pROJECTYEAR\":\"2019\",\"pURCHASESTYLE\":\"6\",\"pURCHASETYPE\":\"1\",\"procurementplandecisioncompletiontime\":\"2020-01-09\",\"projectType\":\"1\",\"rECEIVEDEMANDTIME\":\"2019-11-01\",\"rESERVESTR1\":\"\",\"rESERVESTR2\":\"56985.55\",\"rESERVESTR3\":\"\",\"rESERVESTR4\":\"\",\"rESERVESTR5\":\"\",\"selectedBddingReason\":\" \",\"singleSourceScene\":\"21\",\"singleSourceSceneURLS\":{\"singUrl\":[{\"aTTACHMENTS_DATE\":\"2019-12-19\",\"aTTACHMENTS_MODE\":\"SFTP\",\"aTTACHMENTS_NAME\":\"XX簽報.zip\",\"aTTACHMENTS_TYPE\":\"zip\"}]}}}";ProjectBase pro  = JSON.parseObject(xmlstr100000000037469,ProjectBase.class);

?

工具tools

package com.chinamobile.scm.project.dto.es;import com.thoughtworks.xstream.XStream;/*** 將bean對象轉換為xml形式的轉換器** @author crawler**/
public class BeanToXMLConverter implements XMLConverter {private BaseConverterBean bean;public BeanToXMLConverter(BaseConverterBean bean) {this.bean = bean;}@SuppressWarnings("unchecked")public String toXml(XStream xstream, Class type, boolean isAttribute) {if(isAttribute){xstream.processAnnotations(type);}return xstream.toXML(bean);}
}public static XStream getInstance() {return  new XStream(new XppDriver(new XmlFriendlyReplacer("_-", "_")));}

把類轉成xml

XMLConverter converter = getBeanToXMLConverterInstance(pro);XStream xstream =getInstance();String xml = converter.toXml(xstream, pro.getClass(), true);

?

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386687.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386687.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386687.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

細數Android開發者的艱辛歷程,全網最新

前言 這篇文章主要是分享今年面試心得,現已就職于某大廠有三個月了,近期有很多公司均已啟動秋招,也祝大家面試順利,獲得理想的offer! 之前找工作的那段時間感想頗多,總結一點面試經驗和人生思考分享給大家…

Mac安裝nginx配置過程

mac電腦系統重裝了,記錄一下安裝nginx的過程: 1、打開終端 2、安裝Command Line tools xcode-select --install 3、安裝brew命令 1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 4、安裝…

2.用Python套用Excel模板,一鍵完成原亮樣式

from xlutils.copy import copy import xlrd import xlwttem_excelxlrd.open_workbook(日統計.xls,formatting_infoTrue)tem_sheettem_excel.sheet_by_index(0)new_excelcopy(tem_excel) new_sheetnew_excel.get_sheet(0) new_sheet.write(2,1,12) new_sheet.write(3,1,18) new…

面試中Handler這些必備知識點你都知道嗎?面試真題解析

前言 前幾天去參加了一場面試。面試的題目大多很基礎,有一道關于埋點的問題,面試官問我如果不用第三方SDK進行埋點,自己埋點的話,如何減少埋點對業務代碼的入侵。 當時沒想太多,就說創建一個 BaseView 類&#xff0c…

kubernetes對象之deployment

系列目錄 簡述 Deployment為Pod和ReplicaSet提供了一個聲明式定義(declarative)方法,用來替代以前的ReplicationController來方便的管理應用。典型的應用場景包括: 定義Deployment來創建Pod和ReplicaSet滾動升級和回滾應用擴容和縮容暫停和繼續Deploymen…

面試加分項!Android權限處理,手慢無

2021新的一年,開啟新的征程,回顧2020,真是太“南”了。 從年初各大廠裁員,竟然成為一件理所應當的事情,到四月份 GitHub 上“996.ICU” 引起了大家的共鳴。即使我們兢兢業業“996”,但依舊難以抵御 35 歲時…

面試加分項!程序員工作2年月薪12K,附架構師必備技術詳解

最近看到群里看到一個女生,講述了她從開始選擇Android,經過非常努力的學習和掙扎,然而最后面對當前的環境卻不得不放棄。看完以后真的非常替她感覺惋惜,如果早幾年入行可能結果會比現在好很多,但可惜,這就是…

物理機實時監控UI之grafana(SimpleJson)+gRPC

在時序分析及監控展示領域,Grafana無疑是開源解決方案中的翹楚,其靈活的插件機制,支持各種漂亮的面板、豐富的數據源以及強大的應用。典型的面板有Graph、Text、Singlestat、PieChart、Table、Histogram等,支持的數據源有ES、Grap…

Uva679

Dropping Balls UVA - 679 思路&#xff1a;和之前做的開關燈的題類似 只需要看小球的編號奇偶。 找規律就行&#xff0c;一直想推導出這個規律滿足所有情況&#xff0c;但是沒有想出來怎么推。 1 #include<bits/stdc.h>2 #define maxn 1053 #define LL long long4 usi…

面試大廠應該注意哪些問題?算法太TM重要了

前言 很多次小伙伴問到學習方法&#xff0c;我也很想寫這樣的一篇文章來跟大家討論下關于學習方法這件事情。 其實學習方法這個事情&#xff0c;我沒啥發言權&#xff0c;因為我自己本身都是沒啥方法可言的&#xff0c;就瞎折騰那種&#xff0c;但是大家想看這樣的一篇文章&a…

Spring Boot 與 Java 對應版本,以下表格由官方網站總結。

Spring Boot 與 Java 對應版本&#xff0c;以下表格由官方網站總結。 官網&#xff1a;https://spring.io/projects/spring-boot#learn https://docs.spring.io/spring-boot/docs/{verion}/reference/htmlsingle/ Go to [9. System Requirements] Sping BootSpring Framew…

Java開發環境之RabbitMQ

查看更多Java開發環境配置&#xff0c;請點擊《Java開發環境配置大全》 捌章&#xff1a;RabbitMQ安裝教程 1&#xff09;下載安裝Erlang 官網下載&#xff1a;http://www.erlang.org&#xff0c;有時比較難訪問進去 Windows版下載&#xff1a;http://www.erlang.org/download/…

Linux下GitLab的安裝及使用

一、初始GitLab GitLab是利用Ruby on Rails一個開源的版本管理系統&#xff0c;實現一個自托管的Git項目倉庫&#xff0c;可通過Web界面進行訪問公開的或者私人項目。 與Github類似&#xff0c;GitLab能夠瀏覽源代碼&#xff0c;管理缺陷和注釋。可以管理團隊對倉庫的訪問&a…

面試大廠應該注意哪些問題?隔壁都饞哭了

前言 說起程序員人們的第一印象就是工資高、加班兇、話少錢多頭發少。再加上現在科技互聯網公司太吃香&#xff0c;bat、華為小米等公司程序員加班情況被廣泛傳播&#xff0c;程序員用生命在敲代碼的印象刻在了很多人的心里。 與其它行業一樣&#xff0c;凡是有高級和普通&…

元類(metaclass)

目錄 一、引言二、什么是元類三、為什么用元類四、內置函數exec(儲備)五、class創建類5.1 type實現六、自定義元類控制類的創建6.1 應用七、__call__(儲備)八、__new__(儲備)九、自定義元類控制類的實例化一十、自定義元類后類的繼承順序十一、練習一、引言 元類屬于python面向…

Linux環境下使用rpm包安裝GitLab

1.安裝依賴環境 [rootgitlab ~]# yum install curl openssh-server postfix cronie 2.下載安裝GitLab包 我安裝的環境是Red Hat Enterprise Linux Server release 7.4 (Maipo) GitLab下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 以上是清華大學開源…

面試字節跳動Android工程師該怎么準備?深度解析,值得收藏

前言 Android高級架構師需要學習哪些知識呢&#xff1f; 下面總結一下我認為作為一個資深開發者需要掌握的技能點。 1.Android開發的幾個階段 我的10年開發生涯中&#xff0c;有9年都是做Android相關開發&#xff0c;以我個人的經歷來看&#xff0c;Android開發市場分為以下…

以JSONobject形式提交http請求

總結一下設置圖標的三種方式&#xff1a; &#xff08;1&#xff09;button屬性&#xff1a;主要用于圖標大小要求不高&#xff0c;間隔要求也不高的場合。 &#xff08;2&#xff09;background屬性&#xff1a;主要用于能夠以較大空間顯示圖標的場合。 &#xff08;3&#xf…

阿里巴巴Android面試都問些什么?系列篇

Google 為了幫助 Android 開發者更快更好地開發 App&#xff0c;推出了一系列組件&#xff0c;這些組件被打包成了一個整體&#xff0c;稱作 Android Jetpack&#xff0c;它包含的組件如下圖所示&#xff1a; 老的 support 包被整合進了 Jetpack&#xff0c;例如上圖 Foundatio…