public static byte[] callMapToXML(Map map) {logger.info("将Map转成Xml, Map:" + map.toString());StringBuffer sb = new StringBuffer();sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><bizdata>");mapToXMLTest2(map, sb);sb.append("</bizdata>");logger.info("将Map转成Xml, Xml:" + sb.toString());try {return sb.toString().getBytes("UTF-8");} catch (Exception e) {logger.error(e);}return null;}private static void mapToXMLTest2(Map map, StringBuffer sb) {Set set = map.keySet();for (Iterator it = set.iterator(); it.hasNext();) {String key = (String) it.next();Object value = map.get(key);if (null == value)value = "";if (value.getClass().getName().equals("java.util.ArrayList")) {ArrayList list = (ArrayList) map.get(key);sb.append("<" + key + ">");for (int i = 0; i < list.size(); i++) {HashMap hm = (HashMap) list.get(i);mapToXMLTest2(hm, sb);}sb.append("</" + key + ">");} else {if (value instanceof HashMap) {sb.append("<" + key + ">");mapToXMLTest2((HashMap) value, sb);sb.append("</" + key + ">");} else {sb.append("<" + key + ">" + value + "</" + key + ">");}}}}

待转化的多层级map代码:

public static void main(String[] args) {Map<String, Object> dataMap = new LinkedHashMap<String, Object>(); //默认dataMap.put("rtnCode", "02");dataMap.put("rtnMsg", "查询失败");dataMap.put("idWltCloudDistrict", "专区id");Map<String, Object> bizMap = new LinkedHashMap<String, Object>();bizMap.put("serviceId", "serviceId001");bizMap.put("data", dataMap);//data节点是一个mapMap<String, Object> objMap = new LinkedHashMap<String, Object>();objMap.put("idWltCloudDistrict", "专区id");objMap.put("districtName", "专区名称");objMap.put("validateDateStart", "专区有效期开始");objMap.put("validateDateEnd", "专区有效期结束");objMap.put("status", "专区状态(00-待发布;01-销售中; 02-已下架;)");objMap.put("partnerId", "合作伙伴id");objMap.put("channelId", "渠道id");objMap.put("areaId", "商圈专区id");dataMap.putAll(objMap); //List<Map<String, Object>> prodKindList1 = new ArrayList<Map<String, Object>>();for(int i=1;i<=2;i++){// 第二层List<Map<String, Object>> prodKindList2 = new ArrayList<Map<String, Object>>();for(int j=1;j<=2;j++){Map<String, Object> prodKindObj2 = new LinkedHashMap<String, Object>();prodKindObj2.put("idWltCloudProdKind", "类目ID");prodKindObj2.put("prodKindName", "类目名称");prodKindObj2.put("prodKindIdx", "类目序号");Map<String, Object> prodKind2 = new LinkedHashMap<String, Object>();prodKind2.put("prodKind", prodKindObj2);prodKindList2.add(prodKind2);}//第一层Map<String, Object> prodKindOjb1 = new LinkedHashMap<String, Object>();prodKindOjb1.put("idWltCloudProdKind", "类目ID");prodKindOjb1.put("prodKindName", "类目名称");prodKindOjb1.put("prodKindIdx", "类目序号");prodKindOjb1.put("prodKindList", prodKindList2);Map<String, Object> prodKind1 = new LinkedHashMap<String, Object>();prodKind1.put("prodKind", prodKindOjb1);prodKindList1.add(prodKind1);}dataMap.put("prodKindList", prodKindList1);XmlCommonUtil.callMapToXML(bizMap);}

转化后效果:

<?xml version="1.0" encoding="utf-8"?>
<bizdata><serviceId>serviceId001</serviceId><data><rtnCode>02</rtnCode><rtnMsg>查询失败</rtnMsg><idWltCloudDistrict>专区id</idWltCloudDistrict><districtName>专区名称</districtName><validateDateStart>专区有效期开始</validateDateStart><validateDateEnd>专区有效期结束</validateDateEnd><status>专区状态(00-待发布;01-销售中; 02-已下架;)</status><partnerId>合作伙伴id</partnerId><channelId>渠道id</channelId><areaId>商圈专区id</areaId><prodKindList><prodKind><idWltCloudProdKind>类目ID</idWltCloudProdKind><prodKindName>类目名称</prodKindName><prodKindIdx>类目序号</prodKindIdx><prodKindList><prodKind><idWltCloudProdKind>类目ID</idWltCloudProdKind><prodKindName>类目名称</prodKindName><prodKindIdx>类目序号</prodKindIdx></prodKind><prodKind><idWltCloudProdKind>类目ID</idWltCloudProdKind><prodKindName>类目名称</prodKindName><prodKindIdx>类目序号</prodKindIdx></prodKind></prodKindList></prodKind><prodKind><idWltCloudProdKind>类目ID</idWltCloudProdKind><prodKindName>类目名称</prodKindName><prodKindIdx>类目序号</prodKindIdx><prodKindList><prodKind><idWltCloudProdKind>类目ID</idWltCloudProdKind><prodKindName>类目名称</prodKindName><prodKindIdx>类目序号</prodKindIdx></prodKind><prodKind><idWltCloudProdKind>类目ID</idWltCloudProdKind><prodKindName>类目名称</prodKindName><prodKindIdx>类目序号</prodKindIdx></prodKind></prodKindList></prodKind></prodKindList></data>
</bizdata>

楼主这么辛苦,请扫一下楼主的支付宝红包推荐码吧,记得一定要消费掉哦。双赢哦。

1、打开支付宝首页搜索“8282987” 立即领红包。

2、扫码领红包。

标题。

将map自动转化为xml报文相关推荐

  1. json报文转化为xml报文_JSON与XML互相转化(Jackson)

    选型: json-lib.jar可以做,但是太老了,抛弃: fastjson完全没有xml相关功能: staxon经测试不能用. 最终选用jackson来主要实现. JDK为1.8,如果低于1.8,则 ...

  2. JAVA对象集合转化为xml转换_xml转为Map集合以及对象转化为xml

    1.[代码][Java]代码 package com.fang.util; import java.io.InputStream; import java.util.HashMap; import j ...

  3. 解析xml报文,xml与map互转

    这段时间写了一个关于xml报文的工具类,做一下具体的讲解: xml文本 <NTMMessage version="1.03"> <NTMHeader>< ...

  4. mybatis支持驼峰自动转换sql吗_mybatis-plus返回map自动转驼峰配置操作

    mybatis-plus返回map自动转驼峰配置object-wrapper-factory不生效问题解决:配置map-underscore-to-camel-case: true不生效问题解决 很多 ...

  5. apache camel 相关配置_MyBatis-Plus返回map自动转驼峰配置object-wrapper-factory

    ## 问题场景: 很多时候我们工作中查询很多字段的时候一般是返回一个VO来接收,这个时候我们只要在yml中配置了 map-underscore-to-camel-case: true 就会自动将查询数 ...

  6. Jaxb对xml报文头的小修小改

    前言: 也是在实际工作中, 借助jaxb来实现xml到java对象的映射转换. 在实际应用中, 也遇到了一些有趣好玩的东西, 权当记录下来. 本文主要讲解jaxb如何生成约定的xml报文头的实现思路, ...

  7. vba xml 怎么设置父节点_熊二做了一个xml报文处理的开源库easyxml

    ❝ 自信.冷静.专注.-- TM 熊的自我勉励 ❞ 1. 前言 熊二从去年开始,因项目需求接触到xml报文的处理,也是我第一次学习用C/C++的方式处理基于DOM模型的xml报文.因为本人比较懒hhh ...

  8. Java解析XML报文内容及标签属性

    前言 JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型.字体 ...

  9. Java开发笔记XML报文的解析

    Java开发笔记XML报文的解析 前言 正文 代码示例 结语 前言 项目任务里需要解析xml报文. 于是开始着手学习相关知识,在查看了多篇博文后找到了一篇不错的,讲的很实用. 转载来源:Java开发笔 ...

最新文章

  1. JPA入门简介与搭建HelloWorld(附代码下载)
  2. 一段始终保持在最底部的div css代码
  3. group by很多字段是不是会很慢_女生回复我总很慢,怎么办?
  4. LeetCode 2095. 删除链表的中间节点(快慢指针)
  5. wps里为什么没有华文楷体_【上寮金贝幼儿园父母课堂】“为什么老师发的照片里没有我家孩子?”...
  6. JS修改标签中的文本且不影响其中标签
  7. jqgrid 固定列宽度_jqGrid 设置列宽
  8. java跨平台_Java如何实现跨平台
  9. pdfplumber库解析pdf格式
  10. 18.Hermite插值
  11. Java itext tiff转换pdf
  12. k8s之常用操作命令
  13. EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台
  14. Python——枚举(enum)
  15. mysql vga怎么使用,mysql explain 详解
  16. SEO基础知识简介(一)
  17. DCM protocol Diagnostic session
  18. DELLEMC VxRail POC 注意点
  19. uniapp项目中引用iconfont图标,实现信号强度图标展示(离线使用)
  20. oracle 权限问题9017,泛微OA 曝出WorkflowCenterTreeData接口注入漏洞(限oracle数据库)

热门文章

  1. fsn文件 c语言,笨办法学C 练习24:输入输出和文件
  2. localhost/ ~wallhe/index.php,实战:2019 0ctf final Web Writeup(一)
  3. 华为m30por升级鸿蒙,华为mate30、mate30Pro怎么升级鸿蒙系统?华为mate30Pro升级鸿蒙系统步骤流程...
  4. 2Pai荣湃单通道数字隔离器π110M30兼容代替Si8410AB-D-IS 3.0kVrms 10Mbps 结构简单 方案更加灵活
  5. 名画112 钱选《画选十幅》
  6. 文本处理之句子切分-日语和英语
  7. 【跃迁之路】【701天】程序员高效学习方法论探索系列(实验阶段458-2019.1.21)...
  8. NVIDIA TensorRT安装包下载分享—— 云盘分享 【TensorRT安装】
  9. Linux下应用进程消失原因分析
  10. 港科资讯|香港科大与苏州市政府签署战略合作协议