類對象
@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);
?
?
?
?
?
?