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;// 项目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);

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨航 AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值