下面分享一下本人寫的工具類,手碼的,代碼如有寫錯望指正
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(); }