采用fastjson对String类型数据进行json构造,然后将json数据转换为xml格式的数据,思路应该比较简单,最终的<?xml version>等信息自己进行组装即可
public static String jsonConvertToXml(String json) {
if (StringUtils.isBlank(json)) {
return "";
}
StringBuilder sbf = new StringBuilder();
Object parse = null;
try {
parse = JSON.parse(json);
} catch (Exception e) {
return null;
}
if (parse instanceof List) {
List arr = (List) parse;
for (int i = 0; i < arr.size(); i++) {
String s = jsonConvertToXml(String.valueOf(arr.get(i)));
sbf.append(s + "\n");
}
} else if (parse instanceof Object) {
JSONObject jsonObject = (JSONObject) parse;
Set<String> keySet = jsonObject.keySet();
for (String key : keySet) {
if (jsonObject.get(key) instanceof List) {
sbf.append("\n");
sbf.append(String.format("<%s>", key));
String arr = jsonConvertToXml(jsonObject.get(key).toString());
sbf.append(arr);
sbf.append(String.format("</%s>", key));
sbf.append("\n");
}else{
JSONObject entityJson=null;
try {
entityJson = jsonObject.getJSONObject(key);
if (jsonObject.getJSONObject(key).size() > 1) {
Set<String> entityHasMoreElm = jsonObject.getJSONObject(key).keySet();
for (String elm : entityHasMoreElm) {
sbf.append("\n");
sbf.append(String.format("<%s>", elm));
String s = jsonConvertToXml(jsonObject.getJSONObject(key).get(elm).toString());
sbf.append(s);
sbf.append(String.format("</%s>", elm));
sbf.append("\n");
}
}else{
String format = String.format("<%s>%s</%s>", key, jsonObject.getString(key), key);
sbf.append("\n");
sbf.append(format);
sbf.append("\n");
}
}catch (Exception e){
String format = String.format("<%s>%s</%s>", key, jsonObject.getString(key), key);
sbf.append("\n");
sbf.append(format);
sbf.append("\n");
}
}
}
}
return sbf.toString();
}
版权声明:本文为qq_40980455原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。