类对象
@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);