类对象
@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;// 项目ID
private 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-DD
private 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;// 原项目ID
private 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;// 预留字段4
private 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);