[color=red][b]注意:[/b][/color]List中只有存放的是相应的Java对象,才能正确转换成json、xml格式
1、核心
2、Total.java
1、核心
package com.dreamoa.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.dreamoa.domain.Menu;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import net.sf.json.JSONObject;
/**
* 数据转换工具类,用于将单个对象、List转换为json、xml格式的字符串
*/
public class ExtUtil {
/**
* 将list对象转换为json格式的数据
* @param totalNum,记录总数
* @param inList,需要转换的list
* @return
*/
public static String getJsonFromList(long totalNum,List inList){
Map<String, Object> map = new HashMap<String, Object>();
map.put("totalNum", inList.size());
map.put("resultList", inList);
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
/**
* 将单个对象转换为json格式,此对象不能为集合类型
* @param inObject
* @return
*/
public static String getJsonFromObject(Object inObject){
JSONObject jsonString = JSONObject.fromObject(inObject);
return jsonString.toString();
}
/**
* 将List转化为xml格式的数据
* @param totalNum
* @param inList,需要转换的list
* @return String
*/
public static String getXmlFromList(long totalNum,List inList){
Total total = new Total();
total.setTotalNum(totalNum);
//创建临时的List对象
List results = inList;
results.add(total);
//创建XStream对象
XStream xs = new XStream(new DomDriver());
//为所有的类创建别名,别名为不包含包名的类名
for (int i = 0; i < results.size(); i++) {
Class clzz = results.get(i).getClass();
//得到全限定类名
String fullName = clzz.getName();
//以"."分割字符串
String [] temp = fullName.split("\\.");
xs.alias(temp[temp.length-1], clzz);
}
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+xs.toXML(results);
return xmlString;
}
/**
* 将一个Object对象转化为xml格式输出
* @param object
* @return
*/
public static String getXmlFromObject(Object object){
XStream xs = new XStream(new DomDriver());
Class clazz = object.getClass();
String [] temp = clazz.getName().split("\\.");
xs.alias(temp[temp.length-1], clazz);
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+xs.toXML(object);
return xmlString;
}
/**
* 将对象转换为表单数据加载需要的格式
* @param object
* @return
*/
public static String getLoadFormData(Object object){
return "";
}
public static void main(String[] args) {
Menu menu = new Menu();
menu.setName("name");
menu.setParentid("123");
Menu menu2 = new Menu();
menu2.setName("name2");
menu2.setParentid("1233");
List inList = new ArrayList();
inList.add(menu);
inList.add(menu2);
System.out.println(ExtUtil.getXmlFromList(inList.size(), inList));
}
}
2、Total.java
package com.hf.sfm.util;
import java.util.List;
/**
* 将List转化为xml时getXmlFromList(),用来存放记录总数
* @author Administrator
*
*/
public class Total {
private long totalNum;//记录总数
private List resultList;//要转换的List,也是转换后的结果集名称
public long getTotalNum() {
return totalNum;
}
public void setTotalNum(long totalNum) {
this.totalNum = totalNum;
}
public List getResultList() {
return resultList;
}
public void setResultList(List resultsList) {
this.resultList = resultsList;
}
}