将map自动转化为xml报文
来源:互联网 发布:源码投稿 编辑:程序博客网 时间:2024/04/29 00:46
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>
3 0
- 将map自动转化为xml报文
- java对象转化为xml报文
- 将数据转化为xml
- java实现对象转换为map、xml字符串转化为map、map转化为xml字符串
- 将json字符串转化为Map对象
- 如何将Map转化为json字符串
- JAVA 将json字符串转化为Map
- 将map通过反射转化为实体
- XML报文转Map
- 自动将jsx转化为js
- 如何遍历Map及将Map转化为二维数组
- 如何将数据转化为XML格式
- 将数组转化为XML数据
- c#将xml字符串转化为 DataTable
- 将XML布局文件转化为View
- JAVA将list转化为xml文件
- 利用pugixml 将xml转化为string
- JAXB解析XML,将XML转化为OBJECT
- JDK和SVN,究竟谁的错?
- poj 1850
- 哈尔滨东北赛总结
- Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
- 用OpenGL构建粒子喷泉
- 将map自动转化为xml报文
- Mantle 初步使用
- 输出当前时间和随机数
- PEPsal分析
- 【LeetCode】002.Add Two Numbers
- Java中堆内存和栈内存详解
- bin下简单工具。
- iOS 应用架构谈:view 层的组织和调用方案
- GLEW库安装和初始化