JSON对象转xml
下面分享一下本人写的工具类,手码的,代码如有写错望指正
1 //body参数是用来作为xml参数最外层的标签头的 2 public static String jsontoXmlString(JSONObject jsonObject,String body){ 3 Set f=jsonObject.keySet(); 4 5 Iterator jsonIterator=f.iterator(); 6 Map<String,String> map=new HashMap(); 7 while(jsonIterator.hasNext()){ 8 String key=(String) jsonIterator.next(); 9 String value=jsonObject.getString(key); 10 if(value.indexOf("[")==0){ 11 String xmlString=""; 12 JSONArray array=JSONArray.parseArray(jsonObject.getString(key)); 13 for(int i=0;i<array.size();i++){ 14 JSONObject jsonVo =JSONObject.parseObject(array.get(i).toString());
//这里是调用本方法,JsonUtil就是我这个工具类的名字 15 String partxmlString=JsonUtil.jsontoXmlString(jsonVo,"meterList"); 16 xmlString=xmlString+partxmlString; 17 } 18 value=xmlString; 19 } 20 map.put(key,value); 21 }
//调用下面的方法 22 String xmlString=JsonUtil.getXmlData(bodyKey,map);
return xmlString;
24 }
//map->xmlString public static String getXmlData(String bodyKey,Map<String,String> map){ StringBuffer sb=new StringBuffer(); if(!"".equals(bodyKey)){ sb.append("<"+bodyKey+">"); } for(String key:map.keySet()){ sb.append("<"+key+">"+map.get(key)+"</"+key+">"); } if(!"".equals(bodyKey)){ sb.append("</"+bodyKey+">"); } return sb.toString(); }