Ext工具类:将对象或List转换为json格式或xml格式

注意:List中只有存放的是相应的Java对象,才能正确转换成json、xml格式
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;
	}
	
}

你可能感兴趣的:(java,xml,json,.net,ext)