下面分享一下本人写的工具类,手码的,代码如有写错望指正
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();
}