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.mzph.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…